首頁 > 評測 > 【STM32U599J-DK測評】屏幕觸摸控制LED
【STM32U599J-DK測評】屏幕觸摸控制LED
- [導(dǎo)讀]
- 在STM32U599J-DK開發(fā)板上,有兩個用戶可以控制的LED: 8864365dd89d1a0a14.png (619.76 KB )下載附件2024-2-27 15:05 上傳 這篇分享,結(jié)合屏幕,對這兩個LED進(jìn)行控制。 一、TouchGFX界面設(shè)計 首先,在TouchG
這篇分享,結(jié)合屏幕,對這兩個LED進(jìn)行控制。
一、TouchGFX界面設(shè)計
首先,在TouchGFX中,新建一個項目:
并選擇對應(yīng)的開發(fā)板:
然后,準(zhǔn)備一張背景圖片:
圖片大小為480x480的,對應(yīng)屏幕大小。
在TouchGFX中,進(jìn)入到Images管理,添加圖片:
然后,在Screen界面,添加這個圖片做為背景圖:
再添加兩個按鈕,用于控制兩個LED:
再給兩個按鈕,都設(shè)置好點擊調(diào)用:
設(shè)計過程中,隨時可以點擊右下角中間的按鈕,進(jìn)行模擬測試:
設(shè)計完成后,點擊右下角的左邊,生成代碼:
然后,點擊左則的 Files,即可打開生成后的代碼和項目目錄:
項目目錄如下:
其中包含了STM32CubeIDE和Keil等編輯器的項目文件。
二、代碼編寫
我使用STM32CubeIDE進(jìn)行開發(fā),直接進(jìn)入下面的目錄打開即可:
TouchGFX采用了類似MVC的MVP開發(fā)模式:
生成的界面處理部分代碼,和我們邏輯功能部分的代碼,是分離的。
通過這樣的方式,界面可以繼續(xù)修改,不對我們實際邏輯處理的代碼產(chǎn)生影響。
在生成的Screen1ViewBase.cpp文件中,有界面處理的實際代碼:
在這個文件的頭部,提示了,不要修改這個文件。除非,后續(xù)不再使用TouchGFX進(jìn)一步修改設(shè)計了。
上述代碼中,包含了按鍵調(diào)用的設(shè)置:
- toggleButton_red.setAction(buttonCallback);
- toggleButton_green.setAction(buttonCallback);
點擊后,調(diào)用該文件中定義的回調(diào):
- 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();
- }
- }
根據(jù)界面的設(shè)置,需要在Screen1View.hpp中生命對應(yīng)的邏輯處理函數(shù):
然后在Screen1View.cpp中,編寫具體的實現(xiàn):
- #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藍(lán)燈亮
在上述代碼中,使用了 SIMULATOR 宏定義來判斷是否處于模擬器模式。如果不加處理,則使用模擬器運行,可能會出錯。
三、實際效果:
編寫完成后,編譯下載,最終效果如下:
- 本文系21ic原創(chuàng),未經(jīng)許可禁止轉(zhuǎn)載!
網(wǎng)友評論
- 聯(lián)系人:巧克力娃娃
- 郵箱:board@21ic.com
- 我要投稿
-
歡迎入駐,開放投稿
-
人均百萬?英偉達(dá)中國員工收入曝光! 2024-08-29
-
《黑神話:悟空》玩家硬盤升級攻略:提升游戲體驗,暢享3A大作 2024-08-29
-
數(shù)睿數(shù)據(jù)參加《系統(tǒng)與軟件工程 低代碼開發(fā)平臺通用技術(shù)要求》國家標(biāo)準(zhǔn)編制 2024-08-29
- NRF52810藍(lán)牙數(shù)字耳機(jī)找人定制
預(yù)算:¥30005天前
- 125KW模塊式PCS軟硬件外包開發(fā)
預(yù)算:¥1100000015小時前
- 12V汽車啟動電源項目BMS設(shè)計
預(yù)算:¥50000023小時前
- 數(shù)據(jù)可視化軟件 開發(fā)
預(yù)算:¥5000023小時前
- PLC項目調(diào)試修改
預(yù)算:¥100001天前
- 起動電機(jī)控制器開發(fā)
預(yù)算:¥1100001天前