STM32CubeIDEでMbedする TextLCD編

STM32CubeIDEでMbedする TextLCD編

今回はMbedのTextLCDクラスを動かしてみます。

投稿時の開発環境を記しておきます。

PC:Windows10 OS
IDE: STM32CubeIDE Version1.3.0
Configurator: STM32CubeMX Version5.6.0
Board: STM32Nucleo-F401RE

TextLCDとは

Mbedでは、いろいろな方がプログラムをつくって公開しています。

TextLCDはキャラクタ表示タイプのLCDにアクセスするためのクラスです。

TextLCDに関するプログラムは、いろいろな方が公開されているようです。

今回は こちら からプログラムをダウンロードしてみました。

比較的最近のもので、ダウンロード数が多かったものに決めました。

Mbedを使ってプログラムすることを考えられている方は Mbedのコード の中を探索してみるのも楽しいと思います。

今回使うLCD

今回使ったLCDは こちら です。

バックライトの電流が多いので、Nucleoボードから供給するのは厳しいかも知れません。

今回は文字の表示が目的なので、バックライトは省略します。

接続

制御用にはGPIOの出力ピンが6本必要になります。

今回は下表のように接続してみました。

Mbed OS2のプロジェクトファイル

Mbed OS2 が使えるプロジェクトをダウンロードできるようにしました。

詳しくは STM32 Mbed OS2 が使える STM32CubeIDEプロジェクト の記事をご覧ください。

プロジェクトファイルをダウンロードすることで、Mbedを使うための環境構築は不要になります。

使用するプロジェクト

Mbedを使うためには以下の記事の手順でプロジェクトを構築する必要があります。

STM32CubeIDEでMbedを動かしてみる その1
STM32CubeIDEでMbedを動かしてみる その2
STM32CubeIDEでMbedする Ticker編

コーディングしてみる

まずダウンロードしたファイルを解凍して、プロジェクトにコピーします。

ウィンドウのドラッグ&ドロップでコピーできます。
以下のように TextLCD関連の6つのファイルをプロジェクトに追加します。

そして SystemClock_Config(); の後に以下のコードを書きます。

TextLCD lcd(PC_9, PC_8, PB_8, PC_6, PB_9, PC_5, TextLCD::LCD20x4);

lcd.locate(0, 0);
lcd.printf("Hello everyone.^^");
lcd.locate(0, 1);
lcd.printf("Welcome to the world of TextLCD.");
lcd.locate(0, 3);
lcd.printf("My board is F401RE.");
lcd.cls();

ビルドして実行する

ビルドしてエラーがないことを確認して実行します。

ステップ実行すると、それぞれの関数の処理がわかると思います。

見ただけでも、わかりそうですけど^^

コードと接続の概要

TextLCD.h を見て頂ければわかりますが、コンストラクタでピンの指定を行います。

引数の左から RS, E, DB4, DB5, DB6, DB7 につないだGPIOピンを指定します。

今回は20×4のLCDを使うので最後の引数には TextLCD::LCD20x4 を指定します。

LCDモジュールの 5番ピンは Read/Write 信号で Write時には L にします。説明書にはその論理が書かれていませんけど・・・

GNDにつないで Write専用にしています。

busyビットを読む場合に Read機能が必要になるのですが、時間待ちをすることでその処理を省略しています。

それから DB0-3 の4ビットはつながずに、4ビットのバス接続で使っています。

使うGPIOピンを省略するためですね。

locate() は表示位置の設定で、引数は左から列、行です。
printf() は表示、cls() はクリアスクリーンです。

皆さまの環境では、うまく表示できましたか?

最後に表示した画像を貼っておきます。

お疲れさまでした。

Mbedカテゴリの最新記事