想入行嵌入式行业,USMART是必不可少的一部分,这部分是必须掌握的。USMART 调试组件是一个十分重要的辅助调试工具。该组件由 ALIENTEK 开发提供,功能类似 linux 的 shell(RTT 的 finsh 也属于此类)。USMART 最主要 的功能就是通过串口调用单片机里面的函数,并执行,对我们调试代码是很有帮助。
那么什么是USMART呢?先了解它的特点如下:
USMART 的特点如下: 1, 可以调用绝大部分用户直接编写的函数。 2, 资源占用极少(最少情况:FLASH:4K;SRAM:72B)。 3, 支持参数类型多(数字(包含 10/16 进制)、字符串、函数指针等)。 4, 支持函数返回值显示。 5, 支持参数及返回值格式设置。 6, 支持函数执行时间计算(V3.1 版本新特性)。 7, 使用方便
有了 USMART,你可以轻易的修改函数参数、查看函数运行结果,从而快速解决问题。比
如你调试一个摄像头模块,需要修改其中的几个参数来得到最佳的效果,普通的做法:写函数
->修改参数->下载->看结果->不满意->修改参数->下载->看结果->不满意….不停的循环,直到满
意为止。这样做很麻烦不说,单片机也是有寿命的啊,老这样不停的刷,很折寿的。而利用
USMART,则只需要在串口调试助手里面输入函数及参数,然后直接串口发送给单片机,就执
行了一次参数调整,不满意的话,你在串口调试助手修改参数在发送就可以了,直到你满意为
止。这样,修改参数十分方便,不需要编译、不需要下载、不会让单片机折寿。
USMART 支持的参数类型基本满足任何调试了,支持的类型有:10 或者 16 进制数字、字
符串指针(如果该参数是用作参数返回的话,可能会有问题!)、函数指针等。因此绝大部分
函数,可以直接被 USMART 调用,对于不能直接调用的,你只需要重写一个函数,把影响调
用的参数去掉即可,这个重写后的函数,即可以被 USMART 调用了。
USMART 的实现流程简单概括就是:第一步,添加需要调用的函数(在 usmart_config.c 里
面的 usmart_nametab 数组里面添加);第二步,初始化串口;第三步,初始化 USMART(通过
usmart_init 函数实现);第四步,轮询 usmart_scan 函数,处理串口数据。
![2ed67d39b7ab47acbe60ea4de629dedf.png](https://img-blog.csdnimg.cn/direct/2ed67d39b7ab47acbe60ea4de629dedf.png)