STM32 SPI接続タッチパネル付ディスプレイを使う

03s_246_1ilip.jpg
Amazon等で取り扱いがある、320×240ドットのSPI接続タッチパネル付2.8インチディスプレイモジュールを使ってみます。前回とは違うILI9341という制御ICです。

Nucleoボードとディスプレイモジュールとの接続は下図の通りです。消費電流は実測50mA程度でした。
03s_246_1ilis.png
※電源に5Vではなく3.3Vを供給する場合は、モジュール裏面のジャンパー(J1)を繋ぎます。最初気づいていませんでしたが、一応動作していました。



<STM32CubeIDE(1.0.2) iocファイル Pinout & Configurationタブ>

・右側列 IC画像
 設定済ピンを変更しておく
  (21)-PA5 : SPI1_SCK
 ピン設定
  (38)-PC7 : GPIO_Output
  (42)-PA9 : GPIO_Output
  (43)-PA10 : GPIO_Output
  (56)-PB4 : GPIO_Input
  (58)-PB6 : GPIO_Output

左側列のConnectivity→SPI1を開く

・中央列上側 Mode
 Mode : Full-Duplex Master

・中央列下側 Configuration→Parameter Settingsタブ
 Data Size : 8 bits
 Prescaler (for Baud Rate) : 64 ※通信がうまくいかない場合は値を大きくして速度を落とします。



<STM32CubeIDE(1.0.2) main.cファイル他>

下記ページのライブラリを利用します。
 github.com/afiskon/stm32-ili9341(右側の[Clone or download]ボタンから全ファイルをダウンロードできます。)

Lib/ili9341フォルダ内の7ファイルを自分のプロジェクトの各フォルダへコピーします。
 Incフォルダ→fonts.h ili9341.h ili9341_touch.h testimg.h
 Srcフォルダ→fonts.c ili9341.c ili9341_touch.c

STM32F3シリーズのNucleoボードを使う場合、ili9341.cとili9341_touch.c最上部に記載されている"stm32f4xx_hal.h"を"stm32f3xx_hal.h"へ変更します。STM32F4シリーズの場合は、そのままでOKです。使用するGPIOピンはili9341.hとili9341_touch.hに#defineで定義されています。

ライブラリのmain.cから以下の3箇所のコードを自分のプロジェクトのmain.cへコピーします。
 /* USER CODE BEGIN Includes */〜/* USER CODE END Includes */
 /* USER CODE BEGIN 0 */〜/* USER CODE END 0 */
 /* USER CODE BEGIN WHILE */~/* USER CODE END WHILE */

実行しディスプレイに画像等が表示されれば成功です。最後の黒い画面ではタッチパネルのテストができます。前回のディスプレイは描画した後毎回画面を更新していましたが、今回はその必要はありません。

タグ : マイコン 

コメントの投稿

非公開コメント

管理人

管理人

自己紹介のページ
記事一覧
Twitter
GitHub

ブログ内検索
カテゴリー
タグ

自作エフェクター   レイアウト   回路図   歪み   PureData   周波数特性   マイコン   波形・倍音   RaspberryPi   エレキギター   アンプ   エレキベース   エフェクター自作方法   歪率   真空管   コーラス   ピックアップ   静音ギター   ヘッドフォンアンプ   擬似ギター出力   市販エフェクター   アコースティックギター   ブースター   コンデンサ   ソロギター   ポールピース   イコライザー   コンプレッサー   ビブラート   フェイザー   トレモロ   TAB譜   ディレイ   DIY_Layout_Creator   ワウ   オートワウ   バッファー   

最近の記事
最新コメント
Twitter
RSS
メールフォーム
当ブログに関するお問い合わせはこちらからお願いします。 ※FAQ(よくある質問)もお読みください。

お名前
メールアドレス
件名
本文

アクセスカウンター