【STM32F429】第26章 ThreadX GUIX滾輪控制元件實現引數調節
最新教程下載:http://www.armbbs.cn/forum.php?mod=viewthread&tid=98429
第26章 ThreadX GUIX滾輪控制元件實現引數調節
本章節為大家講解GUIX的滾輪控制元件實現引數調節,非常實用。
26.1初學者重要提示
26.2 GUIX Studio建立視窗
26.3 GUIX回撥事件處理
26.4 實驗例程設計框架
26.5 實驗例程
26.6 總結
26.1 初學者重要提示
- 務必看第11章學習GUIX Studio的使用方法和第12章學習GUIX Studio生成的程式碼移植到硬體平臺的方法。
- 本章配套例子製作了一個年月日設定案例,實際專案用到的類似場景比較多。
26.2 GUIX Studio建立視窗
我們這裡設計了一個視窗,介面大小800*480:
26.2.1 主視窗設定
主視窗大小800*480,注意注意合理配置一個Widget Id,後面要用到:
另外還專門設定了一個回撥函式:
26.2.2 日期更新控制元件
日期更新是採用的Prompt檔案控制元件實現,注意Widget Id,後面要用到:
並注意開啟執行時動態更新:
26.2.3 滾輪控制元件設定
GUIX有三種滾輪控制元件,分別是Generic Scroll Wheel,Numeric Scroll Wheel和String Scroll Wheel。我們這裡使用的是Numeric Scroll Wheel。
新增方法如下,依次添加了三個,分別用於年月日設定:
我們這裡以年設定為例進行說明,Widget id設定為GUI_ID_NSCROLLWHELL0:
然後是下面幾個引數設定:
- Total Rows
這個是總行數設定。我們這裡設定了30個。
- Selected Row
表示當前選中的行。從0開始計數。
- Row Height
表示行高度。
- Fade Edge Value
表示控制元件邊緣的透明度,0表示完全不透明,255表示完全透明。
- Fade Center Value
表示控制元件中心位置的透明度,0表示完全不透明,255表示完全透明。
- Start Val
表示起始數值。
- End Val
表示結束數值,注意設定的數字範圍跟引數Total Rows匹配。
26.3 GUIX回撥事件處理
滾輪控制元件調節後,可以在回撥函式裡面獲取滾輪數值,回撥程式碼如下:
/* ********************************************************************************************************* * 函 數 名: _cbEventWindow * 功能說明: 視窗window的事件回撥函式 * 形 參: widget 視窗控制代碼 * event_ptr 事件指標 * 返 回 值: 返回0表示成功 ********************************************************************************************************* */ UINT _cbEventWindow(GX_WINDOW *widget, GX_EVENT *event_ptr) { int years, month, day; char buf[100]; switch (event_ptr->gx_event_type) { /* 控制元件顯示事件 */ case GX_EVENT_SHOW: /* 預設事件處理 */ gx_window_event_process(widget, event_ptr); break; /* 更新時間 */ case GX_SIGNAL(GUIX_ID_PROMPT0, GX_EVENT_CLICKED): gx_scroll_wheel_selected_get(&(window.window_numeric_scroll_wheel), &years); gx_scroll_wheel_selected_get(&(window.window_numeric_scroll_wheel_1), &month); gx_scroll_wheel_selected_get(&(window.window_numeric_scroll_wheel_2), &day); sprintf(buf, "%04d-%02d-%02d", (years+2000), month+1, day+1); gx_prompt_text_set(&(window.window_prompt), buf); break; default: return gx_window_event_process(widget, event_ptr); } return 0; }
- 滾輪控制元件的更新後,可以通過函式gx_scroll_wheel_selected_get獲取當前選中的位置索引,注意是從0開始的。滾輪的控制代碼window.window_numeric_scroll_wheel。
- 日期更新使用的文字控制元件Prompt,大家通過滾輪設定時間後,點選Promp檔案控制元件所在位置就會更新為最新的設定數值。
gx_prompt_text_set(&(window.window_prompt), buf);
26.4 實驗例程設計框架
本章例程的重點是滾輪控制元件的使用方法。
26.5 實驗例程
(注,如果是電阻屏,需要做觸控校準,校準方法看本教程附件章節A)
配套例子:
本章節配套了如下兩個例子供大家移植參考:
- V6-2035_GUIX Scroll Wheel
GUIX Studio生成的程式碼在硬體平臺實際執行的工程,含有GCC,IAR,MDK AC5和AC6四個版本工程。
- V6-2036_GUIX Studio Scroll Wheel
GUIX Studio工程模板,設計介面後,生成的檔案可直接新增到MDK,IAR和GCC軟體平臺使用。
實驗目的:
- 本章主要學習GUIX的滾輪控制元件引數調節。
實驗內容:
1、共建立瞭如下幾個任務,通過按下按鍵K1可以通過串列埠列印任務堆疊使用情況
App Task Start任務 :啟動任務,這裡用作BSP驅動包處理。
App Task MspPro任務 :訊息處理,這裡用作LED閃爍。
App Task UserIF任務 :按鍵訊息處理。
App Task GUI任務 :GUI應用任務。
App Task STAT任務 :統計任務。
App Task IDLE任務 :空閒任務。
GUIX System Thread :GUI系統任務。
System Timer Thread任務:系統定時器任務。
實驗效果:
GUIX Studio的介面設計如下:
串列埠列印任務執行情況:
IAR,MDK AC5和AC6工程可以串列埠列印任務執行情況:按開發板的按鍵K1可以列印,波特率 115200,資料位 8,奇偶校驗位無,停止位 1:
Embedded Studio(GCC)平臺的串列埠列印是通過其除錯元件SEGGER RTT做的串列埠列印,速度也非常快,列印效果如下:
展示裡面有亂碼是因為Embedded Studio不支援中文。
26.6 總結
本章節主要為大家講解了滾輪控制元件的使用方法,非常實用,大家可以嘗試自己也建立一個滾輪控制元件效果展示。
微信公眾號:armfly_com 安富萊論壇:www.armbbs.cn 安富萊淘寶:https://armfly.taobao.com