本帖最后由 jinglixixi 于 2020-12-25 08:56 編輯
Micro-Lab可輕松地在上位機設計出表現形式豐富多樣的界面,且通過串行通訊將上位機和下位機有機地聯合起來。 在界面制作方面,該軟件為用戶提供了3類組件,即控制組件、顯示組件及圖表組件。 其中顯示組件的內容最為豐富,它又包含進度球、電池、儀表盤、數碼管、溫度計等組件,見圖1所示。
1.jpg (33.04 KB, 下載次數: 99)
下載附件
2020-12-25 08:54 上傳
圖1 顯示組件及使用
在界面設計時,只需將相應的組件拖到畫布中即可,此外還可修改所用組件的屬性值。 下面制作一個包括3個組件的界面,其運行效果見圖2和圖3所示。
2.jpg (13.74 KB, 下載次數: 99)
下載附件
2020-12-25 08:54 上傳
圖2 運行效果
3.jpg (41.59 KB, 下載次數: 96)
下載附件
2020-12-25 08:54 上傳
圖3 接收下位機數據
由出品方所提供的下位機例程是采用STM32F103開發板,而本次所用的下位機則是GD32307E開發板,為此對源程序進行了相應的功能移植,且按照實際需要進行了裁剪,相應的主程序為: - int main(void)
- {
- float x = 0;
- /* configure systick */
- systick_config();
- /* configure EVAL_COM1 */
- gd_eval_com_init(EVAL_COM1);
- while (1)
- {
- // 進度球
- updateCanvas(WATERLEVER, 0, (char *)&x, sizeof(float));
- delay_1ms(500);
- // 電池
- updateCanvas(BATTERY, 0, (char *)&x, sizeof(float));
- delay_1ms(100);
- // 數碼管
- updateCanvas(LCDNUMBER, 0, (char *)&x, sizeof(float));
- delay_1ms(1000);
- x++;
- if(x>=100)
- {
- x = 0;
- }
- }
- }
復制代碼
其作用是:以一定的時間間隔向上位機發送相應的組件信息,進而刷新相應組件的狀態。其中,變量x的值就是驅動3個字節更新的關鍵。受組件屬性的制約,變量x的取值范圍被設置在0~100之內。
|