在工作中,以什么样的方式向领导汇报工作最直接高效呢?当然是图形界面!图形界面更好表达一个程序设计的逻辑思维,一目了然,本次介绍的Micro-Lab出自风媒科技-赵工之手。
1.什么是Micro-Lab?
Micro-Lab可以称得上是迄今为止最棒的嵌入式调试工具,在调试过程中遇到的所有痛点,在这里都得以解决,并引入了很多新的功能,如全新的串口/网络调试服务及关联模块、发送历史永久保存及支持别名、串口/网络动态指令编程、串口/网络虚拟示波器、超级计算器、ModBus RTU计算器、DTU、串口-网络分裂器、应用影子分身、众多开发辅助工具及资料,独创的革命性事件驱动型上位机编程神器——VanGogh组态画布等数十个功能。用户无需掌握任何一门PC编程语言,只需要鼠标拖拽组件即可轻松上手,从需求到原型仅仅需要几分钟!无论是在使用手感上还是功能实用方面都是绝对一流,可以说Micro-Lab重新定义了嵌入式调试工具,同时也成为行业工具的标杆。
来看看具体长什么样吧:
2、Micro-Lab图形界面设计与使用
切换到组态画布页面,然后手动将左边相关控件拖放到中间控件放置区域,选中其中一个控件时,可以通过右边更改控件的属性,和玩串口屏是类似的操作,即使完全没有用过,不看说明文档也能快速上手。当控件布局完毕以后,在控件放置区域点击鼠标右键选择Run,这时候就会弹出刚刚画好的界面,如下:
这样的话当我们在调试板子的时候就可以非常方便而且更加可视化的操作界面,发送相应得指令了,是不是非常的方便,是不是有点GUI的意思了。
3.将SDK移植到STM32上
这里我用的是STM32F103C8T6的核心板
1.将SDK包拷贝到我们的工程中
2.在MDK中添加SDK的源文件,并将sdk的头文件假如MDK中。
3.修改工程
4.使用Micro-Lab
5.我们这里通过Micro-Lab的动态画布来控制最小系统板上的一个LED灯。
int main(void)
{
delay_init();
uart_init();
LED_Init();
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
initCanvas(events);
while (1)
{
for(char i=0;i<CANVASEVENTLIST_SIZE;++i)
{
if(events[i].componenttype!=NONE_COMPONENT)
{
switch(events[i].componenttype)
{
case SWITCHBUTTON:
{
if(events[i].componentnumer==0)
{
if(events[i].componentmsgtype==SWITCH_ON)
{
LED=0;
printf("SWITCHBUTTON ON, ");
printf("MSG : ");
for(unsigned short j=0;j<events[i].msglen;++j)
{
printf("%2X ", events[i].msg[j]);
}
printf("\r\n");
}else if(events[i].componentmsgtype==SWITCH_OFF)
{
LED=1;
printf("SWITCHBUTTON OFF, ");
printf("MSG : ");
for(unsigned short j=0;j<events[i].msglen;++j)
{
printf("%2X ", events[i].msg[j]);
}
printf("\r\n");
}else
{
}
}
} break;
default: break;
}
events[i].componenttype = NONE_COMPONENT;
events[i].componentnumer = 0;
events[i].componentmsgtype = NONE_MSG;
events[i].msglen = 0;
}else
{
}
}
}
}
这里大家发现我用的是正点原子家的例子,是因为考虑高看我公众号的大多数是学生,大家可能对正点原子和野火的程序更熟悉一些,这样大家移植或者看起来就会顺眼很多。哈哈哈,小编是是不是很贴心。
6.打开MicroLab,新建一个画布。
7.把程序下载到板子之后,点击动态画布上右键->Run。点击按钮板子上的LED灯就会一起亮。
Micro-Lab还在不断的成长中,相信未来会有越来越多好玩的功能,敬请期待!
在公众号后台回复:MicroLab 即可获取本节程序案例以及Micro-Lab软件的安装包和配套例程。