1.《MiniPRO H750开发指南》第二十六章 USMART调试组件实验
《MiniPRO H750开发指南》第二十六章 USMART调试组件实验
实验平台:正点原子MiniPro STMH开发板
章节摘自正点原子MiniPro STMH 开发指南_V1.1
本章,码分我们将向大家介绍一个十分重要的码分辅助调试工具:USMART调试组件。该组件由正点原子开发提供,码分功能类似linux的码分shell(RTT的finsh也属于此类)。USMART最主要的码分功能就是通过串口调用单片机里面的函数,并执行,码分EM梦灵源码对我们调试代码是码分很有帮助的。
USMART调试组件简介:
USMART是码分由正点原子开发的一个灵巧的串口调试互交组件,通过它你可以通过串口助手调用程序里面的码分任何函数,并执行。码分因此,码分你可以随意更改函数的码分输入参数(支持数字(/进制,支持负数)、码分__tz_convert源码字符串、码分函数入口地址等作为参数),码分单个函数最多支持个输入参数,并支持函数返回值显示,目前最新版本为V3.5。
USMART的特点如下:
有了USMART,你可以轻易的修改函数参数、查看函数运行结果,从而快速解决问题。比如你调试一个摄像头模块,需要修改其中的几个参数来得到最佳的效果,普通的c 答题系统源码做法:写函数修改参数下载看结果不满意修改参数下载看结果不满意….不停的循环,直到满意为止。这样做很麻烦不说,单片机也是有寿命的啊,老这样不停的刷,很折寿的。而利用USMART,则只需要在串口调试助手里面输入函数及参数,然后直接串口发送给单片机,就执行了一次参数调整,不满意的话,你在串口调试助手修改参数在发送就可以了,直到你满意为止。openssl pem 源码c这样,修改参数十分方便,不需要编译、不需要下载、不会让单片机折寿。
USMART支持的参数类型基本满足任何调试了,支持的类型有:或者进制数字、字符串指针(如果该参数是用作参数返回的话,可能会有问题!)、函数指针等。因此绝大部分函数,构建spring源码工程可以直接被USMART调用,对于不能直接调用的,你只需要重写一个函数,把影响调用的参数去掉即可,这个重写后的函数,即可以被USMART调用了。
USMART的实现流程简单概括就是:第一步,添加需要调用的函数(在usmart_config.c里面的usmart_nametab数组里面添加);第二步,初始化串口;第三步,初始化USMART(通过usmart_init函数实现);第四步,轮询usmart_scan函数,处理串口数据。
硬件设计:
本实验通过usmart调用单片机里面的函数,实现对LCD显示和LED以及延时的控制。LED0闪烁用于提示程序正在运行。
硬件资源:
1)RGB灯
RED :LED0 - PB4
GREEN :LED1 - PE6
2)串口1(PA9/PA连接在板载USB转串口芯片CH上面)
4)正点原子2.8/3.5/4.3/7/寸TFTLCD模块(仅限MCU屏,位并口驱动)
程序设计:
程序流程图和程序解析:
USMART驱动代码:
USMART驱动源码包括七个文件:usmart.h、usmart_port.c、usmart_port.h、usmart_str.c、usmart.c、usmart_config.c和usmart_str.h。
要使用USMART,我们先得进行代码移植,USMART的移植非常简单,我们只需要修改usmart_port.c里面的5个函数即可完成移植。
核心移植代码解析:
USMART驱动移植完成后,就可以使用USMART了。USMART同外部的互交,一般是通过usmart_dev结构体实现,所以usmart_init和usmart_scan的调用分别是通过:usmart_dev.init和usmart_dev.scan实现的。
USMART的使用:
在串口助手中调用USMART,首先需要查看可调用函数列表,然后根据函数参数类型和大小调整参数值,执行函数。
下载验证:
将程序下载到开发板后,可以看到LED0不停的闪烁,提示程序已经在运行了。同时,屏幕上显示了一些字符(就是主函数里面要显示的字符)。
使用串口调试助手XCOM,选择正确的串口号多条发送勾选发送新行(即发送回车键)选项,然后发送list指令,即可打印所有usmart可调用函数。
系统指令介绍:
通过发送不同的指令,可以进行函数的调用、参数查询、帮助信息查看、进制转换等功能。
函数调用案例:
以delay_ms函数为例,通过输入不同参数,可以实现不同时间的延时效果。使用runtime指令开启函数执行时间统计功能,可以精确测量函数执行时间。
其他函数调用,遵循相同规则,不再赘述。
USMART调试组件的使用,就为大家介绍到这里。USMART是一个非常不错的调试组件,希望大家能学会使用,可以达到事半功倍的效果。