【GD32307E-START】组件界面的驱动显示
[复制链接]
前一段时间接触到一款投入测评的嵌入式开发的调试工具Micro-Lab,该软件可轻松地在上位机设计出表现形式丰富多样的界面,且通过串行通讯将上位机和下位机有机地联合起来。
在界面制作方面,该软件为用户提供了3类组件,即控制组件、显示组件及图表组件。
其中:
控制组件的作用是将界面上对控制组件的操作,通过串行通讯发送到下位机,以起到控制的作用,如开关的通断、滑动条的拖动及旋钮的转动等。
图表组件的作用,则是绘制曲线波形。
而显示组件的内容最为丰富,它又包含进度球、电池、仪表盘、数码管、温度计等组件,见图1所示。
图1 显示组件及使用
在界面设计时,只需将相应的组件拖动到画布中,并可修改所用组件的相应属性值。
我们制作的界面共包括3个组件,其运行效果见图2和图3所示。
图2 运行效果
图3 接收下位机数据
那下位机,也就是GD32307E是如何进行处理的呢?
它主要是通过串口来发送数据,以控制界面中组件的显示效果。
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之内。
|