查看: 1199|回复: 0

[评测分享] 【MicroLab调试工具】+如何让仪表盘转起来(结题篇)

[复制链接]
  • TA的每日心情
    奋斗
    2023-5-10 20:09
  • 签到天数: 1742 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    发表于 2020-12-21 23:38:43 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 jinglixixi 于 2020-12-21 23:41 编辑

    在组态画布的组件中,有一类显示组件,其中就包括仪表盘。在通常情况下,我们要在界面中设计这样一个仪表盘并不困难,但难就难在让它转起来。
    1.jpg
    图1 仪表盘组件
    同样在MicroLab中要创建一个带仪表盘的界面也不难,你只需在组态画布中拖入一个仪表盘组件即可,但让它动起来也是个问题。起初我以为它与开关组件有些类似,开关组件是通过串口发送信息;那仪表盘组件自然是要考串口接收信息了!于是就接上了串口为它发送数据,然而指针丝毫未动,显然是仪表盘无动于衷呀!
    后来又从快捷菜单中选取了“DownloadMCU SDK”,下载了fengmeitech-canvas-master压缩包,解压得到了一个基于STM32F103的例程,但对于没有STM32F103开发板的人作用还是不大,应对典型的开发板都给出相应的使用示例才好。
    其实,更根本的还是向大家给出发送数据的格式更为关键,有了它大家可以遵循这个标准来设计自己的程序就是了。
    2.jpg
    2 例程下载
    那么我们从例程能分析出什么内容呢?
    例程的主程序如下:
    1. int main(void)
    2. {
    3. float x = 0, y = 0, temp;
    4. char str[20];

    5. /*初始化各外设*/
    6. initSysTick();
    7. initNVIC(NVIC_PriorityGroup_2);
    8. initUART();
    9. initLED();
    10. initCanvas(events);

    11. while (1)
    12. {

    13. /*水位进度组件*/
    14. updateCanvas(WATERLEVER, 0, (char *)&x, sizeof(float));
    15. Delay_ms(100);      
    16. updateCanvas(WATERLEVER, 1, (char *)&x, sizeof(float));
    17. Delay_ms(100);      

    18. /*汽车仪表盘组件*/
    19. updateCanvas(CARDASHBOARD, 0, (char *)&x, sizeof(float));
    20. Delay_ms(100);      
    21. updateCanvas(CARDASHBOARD, 1, (char *)&x, sizeof(float));
    22. Delay_ms(100);      

    23. /*电池电量组件*/
    24. updateCanvas(BATTERY, 0, (char *)&x, sizeof(float));
    25. Delay_ms(100);      
    26. updateCanvas(BATTERY, 1, (char *)&x, sizeof(float));
    27. Delay_ms(100);

    28. /*指南针组件*/
    29. updateCanvas(COMPASS, 0, (char *)&x, sizeof(float));
    30. Delay_ms(100);      

    31. /*数码管组件*/
    32. updateCanvas(LCDNUMBER, 0, (char *)&x, sizeof(float));
    33. Delay_ms(100);
    复制代码

    由程序可以看出,它几乎对每一个显示组件都分配了相应的处理程序,但也有一个例外。
    这个例外者你猜是谁呢?
    原来它是时钟组件和时间日期组件,它们是无需外部数据配合的,自身就能运行起来,这是对程序进行分析的一个意外收获!
    这样看来例程是个通用程序,在实际应用过程中是可以按照实际需要量身定制的。
    此外,从组件后面的延时函数看,它是为数据刷新而设置的。
    至于更具体的函数作用,还是配上一块STM32F103开发板来解析串口发送的信息比较高效。
    3.jpg
    3 自运行的组件

    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-11-23 15:44 , Processed in 0.110341 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.