本帖最后由 hkevin 于 2016-9-2 22:21 编辑
【MM32F103开发套件试用体验】USMART
什么是”USMAR”: (百度“USMART”)
USMART是由ALIENTEK开发的一个灵巧的串口调试互交组件,通过它你可以通过串口助手调用程序里面的任何函数,并执行。因此,你可以随意更改函数的输入参数(支持数字(10/16进制)、字符串、函数入口地址等作为参数),单个函数最多支持10个输入参数,并支持函数返回值显示。 USMART的特点如下:
1, 可以调用绝大部分用户直接编写的函数。
2, 资源占用极少(最少情况:FLASH:2.5K;SRAM:72B)。
3, 支持参数类型多(数字(包含10/16进制)、字符串、函数指针等)。
4, 支持函数返回值显示。
5, 使用方便。
使用TFT LCD显示之后遇到一个问题是:
参数估计不准确,比如说我们想在屏幕的中央部分画一个圆,但往往坐标把握不准,导致一次一次的往MCU里面烧程序,显然这样是很浪费的,于是使用USMART组件就可以随意更改函数的输入参数,直接查看显示的结果。
MM32F103开发板例程提供了USMART的范例,
(1) 开发板例程 (DK12_USMART) 这个例程可以透过串口调用单片机里面的函数,
1) 将编译好的固件烧入MM32F103开发板
2) 透过串口助手发送指令
2.1) 输入: “? “ 或“help “ 查看USMART系统提供的命令.
注意: “? “ 或“help “ 最后要加一个”空白”字, 再输入”回车键(enter)”
2.2) 输入: “list “ 列出USMART系统提供的调用函数.
注意: “list “ 最后要加一个”空白”字, 再输入”回车键(enter)”
2.3) 输入: “LCD_ShowString(10,10,200,100,16," test ");“ 透过USMART调用LCD_ShowString()函数.
注意: 最后要加一个”回车键(enter)”
2.4) 输入: “runtime 1)“ 开启函数执行时间统计功能.
注意: “runtime 1)“ 最后要加一个右括号”)” , 再输入”回车键(enter)”
2.5) 输入: “LCD_ShowString(10,30,200,100,16," test ");“ 透过USMART调用LCD_ShowString()函数.
可以看到LCD_ShowString()函数 使用了7.9ms的时间.
(2) 为何USMART系统命令 “? “ ; “help “ ; “list “ 最后要加一个”空白”字 ? 因为 : usmart_str.c 中的usmart_get_cmdname()的代码 使用 *str!=' ' 作为判断
while(*str!=' '&&*str!='\0') //找到空格或者结束符则认为结束了
或者,将此行 增加 *str!='\r'&&*str!='\n' 的判断,就能省略”空白”了
while(*str!=' '&&*str!='\0'&&*str!='\r'&&*str!='\n')//找到空格或者结束符则认为结束了
(3) 为何USMART系统命令 “runtime 1)“ 最后要加一个右括号”)” ?
因为 : usmart_str.c 中的usmart_get_aparm()的代码 使用 *str==')' 作为判断
if((*str==')'||*str=='\0')&&string==0)break;//立即退出标识符
或者,将此行 增加 *str=='\r')||(*str=='\n') 的判断,就能省略”)”了
if((*str=='\r')||(*str=='\n')||(*str==')'||*str=='\0')&&string==0)break;//立即退出标识符
本帖最后由 hkevin 于 2016-9-2 22:21 编辑
【MM32F103开发套件试用体验】USMART
什么是”USMAR”: (百度“USMART”)
USMART是由ALIENTEK开发的一个灵巧的串口调试互交组件,通过它你可以通过串口助手调用程序里面的任何函数,并执行。因此,你可以随意更改函数的输入参数(支持数字(10/16进制)、字符串、函数入口地址等作为参数),单个函数最多支持10个输入参数,并支持函数返回值显示。 USMART的特点如下:
1, 可以调用绝大部分用户直接编写的函数。
2, 资源占用极少(最少情况:FLASH:2.5K;SRAM:72B)。
3, 支持参数类型多(数字(包含10/16进制)、字符串、函数指针等)。
4, 支持函数返回值显示。
5, 使用方便。
使用TFT LCD显示之后遇到一个问题是:
参数估计不准确,比如说我们想在屏幕的中央部分画一个圆,但往往坐标把握不准,导致一次一次的往MCU里面烧程序,显然这样是很浪费的,于是使用USMART组件就可以随意更改函数的输入参数,直接查看显示的结果。
MM32F103开发板例程提供了USMART的范例,
(1) 开发板例程 (DK12_USMART) 这个例程可以透过串口调用单片机里面的函数,
1) 将编译好的固件烧入MM32F103开发板
2) 透过串口助手发送指令
2.1) 输入: “? “ 或“help “ 查看USMART系统提供的命令.
注意: “? “ 或“help “ 最后要加一个”空白”字, 再输入”回车键(enter)”
2.2) 输入: “list “ 列出USMART系统提供的调用函数.
注意: “list “ 最后要加一个”空白”字, 再输入”回车键(enter)”
2.3) 输入: “LCD_ShowString(10,10,200,100,16," test ");“ 透过USMART调用LCD_ShowString()函数.
注意: 最后要加一个”回车键(enter)”
2.4) 输入: “runtime 1)“ 开启函数执行时间统计功能.
注意: “runtime 1)“ 最后要加一个右括号”)” , 再输入”回车键(enter)”
2.5) 输入: “LCD_ShowString(10,30,200,100,16," test ");“ 透过USMART调用LCD_ShowString()函数.
可以看到LCD_ShowString()函数 使用了7.9ms的时间.
(2) 为何USMART系统命令 “? “ ; “help “ ; “list “ 最后要加一个”空白”字 ? 因为 : usmart_str.c 中的usmart_get_cmdname()的代码 使用 *str!=' ' 作为判断
while(*str!=' '&&*str!='\0') //找到空格或者结束符则认为结束了
或者,将此行 增加 *str!='\r'&&*str!='\n' 的判断,就能省略”空白”了
while(*str!=' '&&*str!='\0'&&*str!='\r'&&*str!='\n')//找到空格或者结束符则认为结束了
(3) 为何USMART系统命令 “runtime 1)“ 最后要加一个右括号”)” ?
因为 : usmart_str.c 中的usmart_get_aparm()的代码 使用 *str==')' 作为判断
if((*str==')'||*str=='\0')&&string==0)break;//立即退出标识符
或者,将此行 增加 *str=='\r')||(*str=='\n') 的判断,就能省略”)”了
if((*str=='\r')||(*str=='\n')||(*str==')'||*str=='\0')&&string==0)break;//立即退出标识符