“串口調試助手”和“超級終端”的區別
使用串口調試程序時,調試工具可以選擇“串口調試助手”或者“超級終端”。兩者的區別如下:
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'為換行指令