STM32F103C8T6ボードで、グラフィックLCD NOKIA5110に文字を表示してみます。
NOKIA5110は、SPIで制御します。JA2GQPさんのブログを参考にして、STM32F103C8T6と次のように接続します。
STM32F103C8T6 NOKIA5110
PA11 CE
PA12 RST
PA15 DC
PB3 CLK
PB5 DIN(MOSI)
今回は、配線を少なくするため、CEは、グランドに接続しています。
スケッチは、Arduinoで実験した時と同じもので、接続ピンだけを変更したものを使いました。
ライブラリは、LCD5110_Basic.hを使います。
しかし、表示しませんでした。
この件について、JA2GQPさんに質問したところ、JA2NDKさんが、このことについてフォーラムに書いてます。という情報をいただきました。情報は、こちら。
それによると、STM32duinoでは、PA11,PA12,PA15,PB3,PB4をOUTPUTに指定しても使えないとのことです。まさに今回使用しようとしてるピンです。
使えない理由は、これらのピンがUSBやSPI1に使用されていて、OUTPUTに指定できないよう設定されているからです。
これを回避するためには、setup(){に
afio_cfg_debug_parts(AFIO_DEBUG_NONE);
という1行を加えることが必要とのことです。
さっそく、この1行を加えて(赤アンダーライン)、コンパイル書き込みをしたら、ちゃんと表示されました。
なお、コントラストの設定 myGLCD.setContrast(60);としていますが、設定なしでコントラスト良く表示される場合は、設定は必要ありません。私の場合、この値で良く見えました。(個体差があります)
まずは、めでたし、めでたしです。