SPI液晶 ILI9341をTouchGFXで使おう２

__SPI液晶 ILI9341をTouchGFXで使おう1__ の続きです。

https://qiita.com/usashirou/items/3856d2fbf2e470501ade

次に、ソフトウェアの設定を行います。
手順は __TouchGFX Button Mode__ を参考にします。
https://github.com/maudeve-it/ILI9XXX-XPT2046-STM32/blob/main/3A-TOUCHGFX/README.md
# プログラムのコピー
最初に、__Github__ から以下のファイルをダウンロードし、__Inc__ と __SRC__ にコピーします。

https://github.com/maudeve-it/ILI9XXX-XPT2046-STM32/tree/main/1-HOWTO

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/54992a9f-8968-e3f2-c137-291869a49a36.png)
## Inc
- z_displ_ILI9XXX.h
- z_touch_XPT2046.h
## SRC
- z_displ_ILI9XXX.c
- z_touch_XPT2046.c
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/35c04a22-01aa-5186-0341-f8ac64101a58.png)
__main.h__ へ __include文__ を追加します。

      #include "z_displ_ILI9XXX.h"
      #include "z_touch_XPT2046.h"
    
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/340161e3-9391-25ba-75c2-e3976a2f92c9.png)
# z_displ_ILI9XXX.hの設定
使用する液晶パネルILI9341を __z_displ_ILI9XXX.h__ にします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/16ec0638-a06b-b815-396c-3b8798cb0e19.png)
# TouchGFXの設定
次に __TouchGFX__ にて画面を作ります。
__ApplicationTemplate.touchgfx.part__ をクリックすることで __TouchGFX__ が起動します。
__TouchGFX__ がインストールされていない方はインストールします。

https://support.touchgfx.com/ja/docs/introduction/installation

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/8438aa29-8eb7-daa8-6827-7b9b5a50ec60.png)
画面を作り終わったら右下の __＜/＞__ をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/9ad474f9-47cf-7869-450f-d534f8366478.png)
左下に __Generate Code｜Done__ と表示されればプログラム完成です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/0a7d19a8-e94f-0e16-3a28-1e9bd2da895f.png)
# STM32TouchController.cppの修正
__STM32CudeIDE__ に戻り、プログラムを完成させます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/dde62c60-001e-8b8b-941f-08702139e694.png)
__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 */
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/b507113c-e647-20c7-c7dd-1773f054637a.png)

問題なくコンパイルされると画面が表示されると思います。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/248c4d01-6172-8cce-cbfe-8c7713a0e4d7.jpeg)
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/54d93140-129b-ca35-6d15-a4c61ced95a2.jpeg)
# SPI液晶 ILI9341をTouchGFXで使おう３～キャリブレーションをする～
https://qiita.com/usashirou/items/1671e1664f473ea01c59