首頁 > 評測 > 【STM32U599J-DK測評】屏幕觸摸控制LED
【STM32U599J-DK測評】屏幕觸摸控制LED
- [導讀]
- 在STM32U599J-DK開發(fā)板上,有兩個用戶可以控制的LED: 8864365dd89d1a0a14.png (619.76 KB )下載附件2024-2-27 15:05 上傳 這篇分享,結合屏幕,對這兩個LED進行控制。 一、TouchGFX界面設計 首先,在TouchG
在STM32U599J-DK開發(fā)板上,有兩個用戶可以控制的LED:
這篇分享,結合屏幕,對這兩個LED進行控制。
一、TouchGFX界面設計
首先,在TouchGFX中,新建一個項目:
并選擇對應的開發(fā)板:
然后,準備一張背景圖片:
圖片大小為480x480的,對應屏幕大小。
在TouchGFX中,進入到Images管理,添加圖片:
然后,在Screen界面,添加這個圖片做為背景圖:
再添加兩個按鈕,用于控制兩個LED:
再給兩個按鈕,都設置好點擊調用:
設計過程中,隨時可以點擊右下角中間的按鈕,進行模擬測試:
設計完成后,點擊右下角的左邊,生成代碼:
然后,點擊左則的 Files,即可打開生成后的代碼和項目目錄:
項目目錄如下:
其中包含了STM32CubeIDE和Keil等編輯器的項目文件。
二、代碼編寫
我使用STM32CubeIDE進行開發(fā),直接進入下面的目錄打開即可:
TouchGFX采用了類似MVC的MVP開發(fā)模式:
生成的界面處理部分代碼,和我們邏輯功能部分的代碼,是分離的。
通過這樣的方式,界面可以繼續(xù)修改,不對我們實際邏輯處理的代碼產生影響。
在生成的Screen1ViewBase.cpp文件中,有界面處理的實際代碼:
在這個文件的頭部,提示了,不要修改這個文件。除非,后續(xù)不再使用TouchGFX進一步修改設計了。
上述代碼中,包含了按鍵調用的設置:
復制代碼
點擊后,調用該文件中定義的回調:
復制代碼在該回調中,通過判斷點擊來源,確定調用具體的處理邏輯函數。
根據界面的設置,需要在Screen1View.hpp中生命對應的邏輯處理函數:
然后在Screen1View.cpp中,編寫具體的實現:
復制代碼
在上述代碼中,使用了 SIMULATOR 宏定義來判斷是否處于模擬器模式。如果不加處理,則使用模擬器運行,可能會出錯。
三、實際效果:
編寫完成后,編譯下載,最終效果如下:

這篇分享,結合屏幕,對這兩個LED進行控制。
一、TouchGFX界面設計
首先,在TouchGFX中,新建一個項目:

并選擇對應的開發(fā)板:

然后,準備一張背景圖片:

圖片大小為480x480的,對應屏幕大小。
在TouchGFX中,進入到Images管理,添加圖片:

然后,在Screen界面,添加這個圖片做為背景圖:

再添加兩個按鈕,用于控制兩個LED:

再給兩個按鈕,都設置好點擊調用:


設計過程中,隨時可以點擊右下角中間的按鈕,進行模擬測試:

設計完成后,點擊右下角的左邊,生成代碼:

然后,點擊左則的 Files,即可打開生成后的代碼和項目目錄:

項目目錄如下:

其中包含了STM32CubeIDE和Keil等編輯器的項目文件。
二、代碼編寫
我使用STM32CubeIDE進行開發(fā),直接進入下面的目錄打開即可:

TouchGFX采用了類似MVC的MVP開發(fā)模式:

生成的界面處理部分代碼,和我們邏輯功能部分的代碼,是分離的。
通過這樣的方式,界面可以繼續(xù)修改,不對我們實際邏輯處理的代碼產生影響。
在生成的Screen1ViewBase.cpp文件中,有界面處理的實際代碼:

在這個文件的頭部,提示了,不要修改這個文件。除非,后續(xù)不再使用TouchGFX進一步修改設計了。
上述代碼中,包含了按鍵調用的設置:
- toggleButton_red.setAction(buttonCallback);
- toggleButton_green.setAction(buttonCallback);
點擊后,調用該文件中定義的回調:
- void Screen1ViewBase::buttonCallbackHandler(const touchgfx::AbstractButton& src)
- {
- if (&src == &toggleButton_green)
- {
- //Interaction_green
- //When toggleButton_green clicked call virtual function
- //Call ToggleLED_green
- ToggleLED_green();
- }
- if (&src == &toggleButton_red)
- {
- //Interaction_red
- //When toggleButton_red clicked call virtual function
- //Call ToggleLED_red
- ToggleLED_red();
- }
- }
根據界面的設置,需要在Screen1View.hpp中生命對應的邏輯處理函數:

然后在Screen1View.cpp中,編寫具體的實現:
- #include <gui/screen1_screen/Screen1View.hpp>
- #ifndef SIMULATOR
- #include "stm32u5xx_hal.h"
- #endif
- Screen1View::Screen1View()
- {
- }
- void Screen1View::setupScreen()
- {
- Screen1ViewBase::setupScreen();
- }
- void Screen1View::tearDownScreen()
- {
- Screen1ViewBase::tearDownScreen();
- }
- void Screen1View::ToggleLED_green()
- {
- #ifndef SIMULATOR
- if(toggleButton_green.getState())
- {
- HAL_GPIO_WritePin(GPIOE, GPIO_PIN_0, GPIO_PIN_RESET);//LD2藍燈亮
在上述代碼中,使用了 SIMULATOR 宏定義來判斷是否處于模擬器模式。如果不加處理,則使用模擬器運行,可能會出錯。
三、實際效果:
編寫完成后,編譯下載,最終效果如下:


-
- 本文系21ic原創(chuàng),未經許可禁止轉載!
網友評論
- 聯系人:巧克力娃娃
- 郵箱:board@21ic.com
- 我要投稿
-
歡迎入駐,開放投稿
行業(yè)新聞
-
人均百萬?英偉達中國員工收入曝光! 2024-08-29
-
《黑神話:悟空》玩家硬盤升級攻略:提升游戲體驗,暢享3A大作 2024-08-29
-
論壇活動
more+
項目外包
more+
- NRF52810藍牙數字耳機找人定制
預算:¥30005天前
- 125KW模塊式PCS軟硬件外包開發(fā)
預算:¥1100000015小時前
- 12V汽車啟動電源項目BMS設計
預算:¥50000023小時前
- 數據可視化軟件 開發(fā)
預算:¥5000023小時前
- PLC項目調試修改
預算:¥100001天前
- 起動電機控制器開發(fā)
預算:¥1100001天前