本篇基於 "【GUI Guider 技術手冊】建立專案透過 GUI 控制硬體 _ 1" 講述如何溝通硬體層面達到 GUI 介面與硬體互動步驟。
1. MCUXpresso v11.8.0
2. SDK RT1170 v2.14.0
3. RT1170 EVK
4. GUI Guider V1.6.1
1. 在 GUI Guider 上點選下所圖所示位置,會開啟專案所在位置資料夾,將位置複製。
2. 開啟 MCUXpresso 後在 project explorer 點選 import project,在 import 視窗點選 Existing Project into Workspace
3. 在 import 視窗中 Select root directory 欄填入剛剛複製 GUI Guider 專案位置,會搜尋到 MCUXpresso 專案,確保 option 均未被勾選後點選 Finish,專案即被導入 MCUXpresso。
4. 此時可看到 GUI Guider 專案已被匯入,在專案上點選右鍵,選擇 MCUXpresso Config Tools > Open Pins
5. 此時開啟 MCUXpresso 配置畫面,在 1 處輸入 M13,點選 2 處,在 pin 處勾選 GPIO9,將此 pin 配置為 GPIO。
6. 在下方 Routing Details 將 M13 Pin 配置為 Output,GPIO initial state 設定為 Logical 0
7. 點選 Update Code ,會出現Update Files 顯示會修改的檔案,點選 Change 可確定修改的部分,確認無誤後點選 OK。
8. 開啟專案 generated > event_init.c
9. 在開頭新增 #include “board.h,在第 64 行 blueCounter_btn_1_event_handler 中新增控制 GPIO High/Low API,
GPIO_PinWrite(GPIO9, 3U, 0U); //LED off … GPIO_PinWrite(GPIO9, 3U, 1U); //LED on |
10. 此時可以進行燒錄並透過 GUI 按鈕控制 LED,觀察開發版綠色 LED是否有亮滅,在專案點右鍵 Debug As > MCUXpresso IDE LinkServer… 進行燒錄。
11. 接下來透過前段配置的 evk_btn_counter 紀錄按下數量並透過 UART 印出,在 lvgl_guider.c 中 main 中確認在 GUI Guider 中有配置 debug console 並配置為 UART1,
12. generated > event_init.c 開頭新增
#include "fsl_debug_console.h" |
及
int ledCounter = 0; |
13. 在 blueCounter_btn_1_event_handler 新增
lv_event_code_t code = lv_event_get_code(e); char inputBuffer[50]; switch (code) { case LV_EVENT_CLICKED: { ledCounter++; if(g_toggleLED == false){ g_toggleLED = true; GPIO_PinWrite(GPIO9, 3U, 0U); sprintf(inputBuffer,"%d",ledCounter); lv_label_set_text(guider_ui.blueCounter_evk_btn_counter,inputBuffer); sprintf(inputBuffer,"LED off,%d\r\n",ledCounter); PRINTF(inputBuffer); }else{ g_toggleLED = false; GPIO_PinWrite(GPIO9, 3U, 1U); sprintf(inputBuffer,"%d",ledCounter); lv_label_set_text(guider_ui.blueCounter_evk_btn_counter,inputBuffer); sprintf(inputBuffer,"LED on,%d\r\n",ledCounter); PRINTF(inputBuffer); } break; } default: break; }
|
14. 將程式燒錄到 RT1170 EVK 上
15. 開啟 Terminal (如 Tera term , PuTTY 等) ,點選 LED 按鍵此時可看到 LED Counter 有正確在計數,Terminal 有正確些收到計數,LED 可以根據 UI 按鍵控制,至此已介紹完如何新增 UI 按鈕並控制硬體底層方式。
參考來源