“串口调试助手”和“超级终端”的区别
使用串口调试程序时,调试工具可以选择“串口调试助手”或者“超级终端”。两者的区别如下:
1.“串口调试助手”可以进行16进制数据的发送和接收,以及ASCII码的发送和接收;而“超级终端”只能进行ASCII码的接收,或者从键盘接收字符。
2.当波特率比较大时,“串口调试助手”显示的字符会出现乱码;而超级终端不会。所以如果只是用串口调试工具进行接收数据的话,“超级终端”是最好的选择。
3.“串口调试助手”显示的数据可以随时清空,只需点击清空数据即可;而“超级终端”清屏时,需要在程序中向超级终端发送清屏指令0x0c。
超级终端中常用的指令如下:
清除屏幕已显示的字符 :0x0C
将光标退格(但不删除已显示的字符) :0x08
将光标移动到同一列的下一行 : 0x0A 或 0x0B
将光标移动到行首 : 0x0D
将光标右移一个制表符 (相当于TAB键): 0x09
指令的使用方法:
在程序中以转义字符方式向串口发送字符:
case DATA_FOR_TEST://k { /* * 测试丢包率时,接收方可以通过超级终端查看测试是否正确。 */ static uint32_t i = 1; if(i == 1) //接收到第一个包时先清屏,'x0c'为超级终端的清屏指令 { sio_putchar('x0c'); } printf("%"PRIu32"x09",i); //'x09'为tab指令 if(i%10 == 0) { sio_putchar('x0a'); //'x0a'为换行指令 } i ++ ; break; }
解释:
收到第一个字符时,先发送清屏指令:sio_putchar('x0c'); ,清除屏幕中的内容;
再输出收到的字符,并尾随tab字符:printf("%"PRIu32"x09",i); //'x09'为tab指令
收到第10个字符后,输出换行符:sio_putchar('x0a'); //'x0a'为换行指令