SPI液晶 ILI9341をTouchGFXで使おう1 の続きです。
次に、ソフトウェアの設定を行います。
手順は TouchGFX Button Mode を参考にします。
https://github.com/maudeve-it/ILI9XXX-XPT2046-STM32/blob/main/3A-TOUCHGFX/README.md
プログラムのコピー
最初に、Github から以下のファイルをダウンロードし、Inc と SRC にコピーします。
Inc
- z_displ_ILI9XXX.h
- z_touch_XPT2046.h
SRC
-
z_displ_ILI9XXX.c
-
z_touch_XPT2046.c
main.h へ include文 を追加します。#include "z_displ_ILI9XXX.h" #include "z_touch_XPT2046.h"
z_displ_ILI9XXX.hの設定
使用する液晶パネルILI9341を z_displ_ILI9XXX.h にします。
TouchGFXの設定
次に TouchGFX にて画面を作ります。
ApplicationTemplate.touchgfx.part をクリックすることで TouchGFX が起動します。
TouchGFX がインストールされていない方はインストールします。
画面を作り終わったら右下の </> をクリックします。
左下に Generate Code|Done と表示されればプログラム完成です。
STM32TouchController.cppの修正
STM32CudeIDE に戻り、プログラムを完成させます。
STM32TouchController.cpp に以下2文を追加します。
#include "main.h"
return ((bool) Touch_TouchGFXSampleTouch(&x, &y));
main.cの設定
main.c の USER CODE BEGIN 2、USER CODE BEGIN WHILE に以下を追加します。
/* USER CODE BEGIN 2 */ // "USER CODE BEGIN 2" is after all system initializations and before entering the main loop. Good place to initialize display
Displ_Init(Displ_Orientat_0); // initialize the display and set the initial display orientation (here is orientaton: 0°) - THIS FUNCTION MUST PRECEED ANY OTHER DISPLAY FUNCTION CALL.
touchgfxSignalVSync(); // asks TouchGFX to start initial display drawing
Displ_BackLight('I'); // initialize backlight and turn it on at init level
/* USER CODE END 2 */
/* USER CODE BEGIN WHILE */
while (1) // into the main loop you can add the test functions
{
if (Touch_GotATouch(2))
touchgfxSignalVSync(); // asks TouchGFX to handle touch and redraw screen
if ("other events needing a display update")
touchgfxSignalVSync(); // asks TouchGFX to get events and redraw screen
/* USER CODE END WHILE */
SPI液晶 ILI9341をTouchGFXで使おう3~キャリブレーションをする~