顯示包含「TouchGFX」標籤的文章。顯示所有文章
顯示包含「TouchGFX」標籤的文章。顯示所有文章

2021年9月21日星期二

TouchGFX_01 螢幕控制IO

        今天主要目標就是透過STM32F429 Discovery 開發版上面的TFT螢幕進行控制板子上的LED燈。話不多說,我們直接開始。

壹、開發環境


軟體

    1. TouchGFX 4.16.1

    2. STM32cubeIDE

硬體

    1. STM32F429 Discovery Board

安裝過程請見 

TouchGFX:https://850121.blogspot.com/2021/08/st-touchgfx.html

 

貳、MVP 控制概念圖

螢幕觸發事件會透過Presenter中間處理,再告訴Model控制對應的項目



參、開發步驟


 大致上的流程

    TouchGFX

1.建立TouchGFX專案

2.製作背景/文字/按鈕

3.建立觸發事件

4.產生專案程式碼

    STM32 Cube IDE 

1.匯入TouchGFX 產生的STM32 CUBE IDE的專案 

2.main.c 加入欲控制IO初始化

3.Model.hpp/Model.cpp 加入控制函式

4.Screen1Preseenter.hpp/Screen1Preseenter.cpp 加入控制函式

5.Screen1View.hpp/Screen1Preseenter.cpp加入控制函式

6.燒錄程式碼進開發板

 

Step01.建立TouchGFX專案

請參考此篇,選擇開發板及空的樣本即可。



Step02.製作背景/文字/按鈕

這是這次要做的畫面

1.插入背景
 

這邊,我是根據螢幕大小自己用小畫家畫一個240x320的白色圖片,並加入專案,加入後選擇匯入的圖片即可 


2.插入文字

依據所想擺放位置擺放即可, 記得要放兩個並修改名稱


3.插入按鈕



Step03.建立觸發事件

這邊已LED_ON為範例,Trigger訊號主要選擇按鈕觸發,並指定對應按鈕,action選擇Call new virtual function ,Function Name命名一個比較清楚的名稱,到時候加程式碼時會用到,這邊我是建立LED_ON及LED_OFF兩個,個別對應開關LED的動作。 

 

Step04.產生專案程式碼

 


Step05.匯入TouchGFX 產生的STM32 CUBE IDE的專案 

Open Projects from File System

 選擇STM32CubeIDE

 確認專案資料夾有被讀取到,按下Finish



Step06.main.c 加入欲控制IO初始化

 先從專案資料夾中找到main.c並開啟,接著尋找static void MX_GPIO_Init(void)

接下來加入LED燈的IO初始化,由於我已經先查好電路圖了,腳位名稱為PG13 在

static void MX_GPIO_Init(void)中加入下列程式碼

 

/*Configure GPIO pins : PG13 */

  GPIO_InitStruct.Pin = GPIO_PIN_13;

  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;

  GPIO_InitStruct.Pull = GPIO_PULLUP;

  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;

  HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);

  HAL_GPIO_WritePin(GPIOG, GPIO_PIN_13, GPIO_PIN_RESET); 

 如下圖


Step07.Model.hpp/Model.cpp 加入控制函式

 Model.hpp / Model.cpp檔案路徑

 

1. Model.hpp 宣告下面函式

void GPIO_HIGH();

void GPIO_LOW(); 

加入位置如下圖 

 


 

2. Model.cpp 實作功能

void Model::GPIO_HIGH(){
HAL_GPIO_WritePin(GPIOG, GPIO_PIN_13, GPIO_PIN_SET);
}
void Model::GPIO_LOW(){
HAL_GPIO_WritePin(GPIOG, GPIO_PIN_13, GPIO_PIN_RESET);
}

 加入位置如下圖 

 

Step08.Screen1Preseenter.hpp/Screen1Preseenter.cpp 加入控制函式

Screen1Preseenter.cpp  檔案路徑

1.Screen1Preseenter.hpp 加入程式碼

virtual void LED_ON();

virtual void LED_OFF();  


2. Screen1Preseenter.cpp 加入程式碼 

void Screen1Presenter::LED_ON()
{
model->GPIO_HIGH();
}
void Screen1Presenter::LED_OFF()
{
model->GPIO_LOW();
}

加入完成後如下圖 


Step09.Screen1View.hpp/Screen1View.cpp加入控制函式 

Screen1View.cpp檔案路徑

我們可以看到Screen1View.hpp 中的宣告裡面有我們在TouchGFX 建立的虛擬函式,LED_ON()、LED_OFF(),如下圖



 接下來要去Screen1View.cpp中實作,LED_ON()及LED_OFF(),程式碼如下


void Screen1View::LED_ON()
{
presenter->LED_ON();
}
void Screen1View::LED_OFF()
{
presenter->LED_OFF();
}

加入完成後如下圖


Step10.燒錄程式碼進開發板

 


肆、結果 


希望各位都可以成功! 

參考資料

2021年8月16日星期一

TouchGFX_0 0安裝

 今天網路上看到ST 推出新的GUI 軟體,下載下來玩玩看

安裝

ST官網連結:

https://www.st.com/content/st_com/en/products/embedded-software/mcu-mpu-embedded-software/stm32-embedded-software/stm32cube-expansion-packages/x-cube-touchgfx.html#get-software

記得選擇最新版喔,之前我在舊版的時候就載了,結果使用上有些問題。



下載下來的壓縮檔,解壓縮(請耐心等待喔)


解壓縮後的內容
到這裡的時候可能有人會覺得,軟體哩?!
別急~下一步告訴你安裝檔在哪裡
en.x-cube-touchgfx-4-16-1_v4.16.1\Utilities\PC_Software\TouchGFXDesigner
在這個路徑下喔!

點擊兩下後開啟安裝


接下來就簡單啦~一路下一步到底即可



等待安裝完成
安裝完成
開啟的樣子

可以到這步代表安裝完成


























2021年7月28日星期三

ST TouchGFX Designer 介紹

 最近看到ST 官方推出新的HMI 介面設計軟體,可以在電腦上模擬呈現樣子,話不多說開始吧!

優點介紹

  1. HMI 快速開發
  2. 可在電腦端模擬
  3. 在軟體設定動作事件
  4. 自動生成程式碼
  5. 提供多片開發版範例
  6. 免費開源


一、開發環境

軟體

TouchGFX 4.16.1 Designer

官網軟體連結 https://www.st.com/en/development-tools/touchgfxdesigner.html

開發板

STM32F429 Discovery Board


二、軟體安裝
1.需安裝IDE(擇一安裝)
STM32 cube IDE 或 Keil+CUBE MX
2.Touch GFX

 

三、開發環境介紹
        安裝完後剛開啟長這樣
           




四、專案建立
        
        選擇STM32F429I Discovery
        
        選擇官方提供的範例

        初步設定完成後的畫面,接著點擊"CREATE"


        完成後產生樣子


五、電腦端進行模擬
    
        點擊 Run Simulator

        接著會跳出模擬視窗,我透過截圖顯示畫面切換的結果




六、燒錄到開發板

        點擊 Run Target,開發板便會自動載入    


        燒錄完成後的樣子



七、結語

         電腦端的解析度及細緻度,無法在這片板子上呈現,部分原因是因為硬體規格限制住了,若是換成後來較高階的板子也是可以更貼近電腦端模擬的樣子。
        感覺像是用點一點就可以把UI畫面做出來了,難得還是後面的客製化及應用層面,下次繼續分享。


參考

打賞按讚