STM32——USMART调试组件实验-M4

什么是USMART?

USMART是为STM32开发平台开发的一种类似Linux的shell的调试工具。具体工作过程是通过串口发送命令给单片机,然后单片机收到命令之后调用单片机里面对应的相关函数并执行,同时支持返回结果。

USMART调试过程:

1、串口调试助手发送函数命令:Led_set(0);

2、单片机接收到命令之后,解析命令,调用对应的函数:Led_set();

3、调用Led_set函数

USART应用场景:

开发过程中,经常需要修改函数入口参数,查看运行效果的情况下应用非常方便。不用多次下载代码或多次用JLINK调试。

USMART特点:

1、可以调用绝大多数部分用户直接编写的函数。

2、资源占用极少(最少情况:FLASH:4K  SRAM:72B)。

3、支持参数类型多(数字(包含10/16进制)、字符串、函数指针等)。

4、支持函数返回值显示。

5、支持参数及返回值格式设置。

6、支持函数执行时间计算。

7、使用方便。

USMART文件组:

usmart.c负责与外部互交等

usmart_str.c主要负责命令与参数解析

usmart_config.c主要由用户添加需要由usmart管理的函数

usmart.h和usmart_str.h是两个头文件,其中usmart.h里面含有几个用户配置宏定义,可以用来配置usmart的功能及总参数长度(直接和SRAM占用挂钩)、是否使能定时器扫描、是否使用读写函数等。

USMART步骤配置

1、将USMART包添加到工程中,头文件要包含到path。

2、添加需要调用的函数到usmart_config.c文件中。

3、主函数中调用usmart_dev.init函数初始化usmart。

4、即可通过助手发送命令,调用在usmart注册过的函数。

将函数注册到usmart中:void+指针“*”+函数名字+“,”+在XX.h中复制一下函数全部并用双引号引起来。比如:(void*)LCD_Clear,"void LCD_Clear(u16 Color)"

如果是在外面(main函数外面)在usmart中注册函数的外面写extern

比如:extern void led_set(u8 sta);   (void*)led_set,"void led_set(u8 sta)"

USMART系统命令:

1、?:获取帮助信息

2、help:获取帮助信息

3、list:可用的函数列表

4、id:可用函数的ID列表

5、hex:参数16进制显示,后跟空格+数字即执行进制转换

6、dec:参数10进制显示,后跟空格+数字即执行进制转换

7、runtime:1,开启函数运行计时;0,关闭函数运行计时。

USMART的执行过程:

单片机通过串口接收命令,当命令是调用相应函数时,串口中有一个buffer数组将数据存储,然后开启一个定时器开始计时。每隔一定时间会检测buffer中收到的字符串,从而接收命令进而调用函数。整个过程主要是定时器通过中断定时检测收到的数据,然后去执行相应的函数,当函数执行完之后定时器的中断也将结束,程序就会恢复到最初执行的位置。usmart发送命令执行函数实际上是在定时器的中断中执行。

举例:如果屏幕上原本白板,然后在上面画一个圆圈,当定时器中断执行之后程序会进行刷屏,屏幕会再次变为白板。

USMART调试组件

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值