學習單片機過程中遇到兩個問題: 1、寫好串口代碼,手邊沒有硬體調試; 2、串口收發出現奇怪的問題,無法定位; 經過百度,百度,再百度後,終於找到瞭解決方法,那就是:串口收發模擬。不多說,總結如下: 實驗需要的軟體:VSPD(Virtual Serial Port Driver)、串口調試助手、Kei ...
學習單片機過程中遇到兩個問題:
1、寫好串口代碼,手邊沒有硬體調試;
2、串口收發出現奇怪的問題,無法定位;
經過百度,百度,再百度後,終於找到瞭解決方法,那就是:串口收發模擬。不多說,總結如下:
實驗需要的軟體:VSPD(Virtual Serial Port Driver)、串口調試助手、Keil
環境搭建:
1、VSPD配置:
△點擊1處選擇兩個互相通信的串口,其中一層的串口要和串口調試助手設置的串口相同,且兩個串口的串口號是在Keil中可識別的(稍後Keil部分詳說);
△選好串口後,點擊2處添加;
△ 當要刪除串口對時,在串口沒被占用的情況下,點擊4刪除;
2、串口調試助手設置:
⊙設置好相關參數,包括串口、波特率、校驗位等,另外為了使接收的數據不出現亂碼,採用十六進位發送和顯示,如圖:
3、Keil設置:
⊙源碼編譯通過後,打開Debug
⊙在【View】中選擇打開【Command window】,如圖:點擊1和3可以切換到命令視窗和串口數據監視視窗,在命令視窗下,2處為輸入命令行;
⊙用命令對串口設置:
△如圖,輸入命令時,在其下方2處會有命令提示:
△在輸入com後會顯示出當前系統中可識別的串口(VPSD中設置可參考):
△設置被綁定電腦串口參數,使用mode命令,其後參數與串口調試助手中設置參數相同,命令格式為:
MODE COMx baudrate, parity, databits, stopbits
COMx:電腦串口號(VSPD中設置的串口號);
Baudrate:波特率
Parity:校驗方式,0表示無校驗,1表示奇校驗,2表示偶校驗
Databits:數據位
Stopbits:停止位
△設置好參數後需要將單片機串口綁定到電腦串口,使用assign命令,命令格式如下:
ASSIGN channel <inreg> outreg
Channel:電腦串口號,設置好參數的串口;
<inreg>和outreg:代表單片機串口,對於只有一個串口的單片機,即<SIN>和SOUT;對於有兩個或多個串口的單片機為<SnIN>和SnOUT(n為0,1,2…)。註意:<SIN>的<>必須帶上;
△設置好後,能看到VSPD的串口處有參數:
到此,單片機串口收發模擬的環境就搭建完成了,接下來進行模擬操作。需要註意的是,串口模擬既需要單步調試查看具體情況,也需要全速運行模擬現實的通信。
模擬的串口通信和現實串口測試相似:串口助手模擬上位機發送和接受數據,Keil環境模擬單片機串口,它的串口監視視窗顯示單片機從上位機收到的數據。