新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 利用VSPD、串口調(diào)試助手、Keil做串口調(diào)試

利用VSPD、串口調(diào)試助手、Keil做串口調(diào)試

作者: 時(shí)間:2016-11-23 來源:網(wǎng)絡(luò) 收藏

下面詳細(xì)介紹下如何用虛擬串口調(diào)試串口發(fā)送接收程序。

本文引用地址:http://m.butianyuan.cn/article/201611/320470.htm

需要用到三個(gè)軟件:KEIL、VSPD XP5(virtual serial ports driver xp5.1虛擬串口軟件)、串口調(diào)試助手(個(gè)人感覺2.1比較好用)。

1、首先在KEIL里編譯寫好的程序。

2、打開VSPD,界面如下圖所示:

左邊欄最上面的是電腦自帶的物理串口。點(diǎn)右邊的add pair,可以添加成對(duì)的串口。一對(duì)串口已經(jīng)虛擬互聯(lián)了,如果添加的是COM3、COM4,用COM3發(fā)送數(shù)據(jù),COM4就可以接收數(shù)據(jù),反過來也可以。

3、接下來的一步很關(guān)鍵。把KEIL和虛擬出來的串口綁定?,F(xiàn)在把COM3和KEIL綁定。在KEIL中進(jìn)入DEBUG模式。在最下面的COMMAND命令行,輸入

MODE COM3 4800,0,8,1(設(shè)置串口3的波特率、奇偶校驗(yàn)位、數(shù)據(jù)位、停止位,打開COM3串口,注意設(shè)置的波特率和程序里設(shè)置的波特率應(yīng)該一樣)

ASSIGN COM3 SOUT(把單片機(jī)的串口和COM3綁定到一起。因?yàn)槲矣玫膯纹瑱C(jī)是STC89C52,只有一個(gè)串口,所以用SIN,SOUT,如果單片機(jī)有幾個(gè)串口,可以選擇S0IN,S0OUT,S1IN,S1OUT。)

為了不每次都重新綁定串口,可以建立一個(gè)初始化文件debug.ini。初始化文件是一個(gè)普通的文本文件,內(nèi)容就是仿真時(shí)需要的命令,按照順序一行輸入一條。如圖2所示,建立了一個(gè)debug.ini的初始化文件。這樣,當(dāng)每次進(jìn)入仿真調(diào)試狀態(tài)時(shí),Keil就會(huì)自動(dòng)載入debug.ini 的內(nèi)容進(jìn)行初始化。

4.串口調(diào)試助手

可以看到虛擬出來的串口COM3、COM4,選擇COM4,設(shè)置為波特率4800,無校驗(yàn)位、8位數(shù)據(jù)位,1位停止位(和COM3、程序里的設(shè)置一樣)。打開COM4。

現(xiàn)在就可以開始調(diào)試串口發(fā)送接收程序了??梢酝ㄟ^KEIL發(fā)送數(shù)據(jù),在串口調(diào)試助手中就可以顯示出來。也可以通過串口調(diào)試助手發(fā)送數(shù)據(jù),在KEIL中接收。

串口調(diào)試助手不支持發(fā)送發(fā)送漢字,回車符等。如需支持可使用usr-tcp232-test(支持漢字),或者超級(jí)終端(支持漢字,回車符和Keil串口仿真控件效果一樣)。

這種方法的好處是不用硬件就可以調(diào)試。這是網(wǎng)上一篇文章介紹的方法.

[cpp]view plaincopy
  1. //利用VSPD、串口調(diào)試助手、Keil串口自發(fā)自收程序
  2. //測(cè)試通過
  3. #include
  4. #defineucharunsignedchar
  5. #defineuintunsignedint
  6. uchari=0;
  7. //串口初始化程序
  8. voidinit_chuankou()
  9. {
  10. TMOD=0x20;
  11. TH1=0xfd;//波特率9600
  12. TL1=0xfd;
  13. SM0=0;
  14. SM1=1;
  15. REN=1;
  16. EA=1;
  17. TR1=1;
  18. ES=1;
  19. }
  20. voidmain()
  21. {
  22. init_chuankou();
  23. while(1)
  24. {
  25. }
  26. }
  27. voides()interrupt4
  28. {
  29. if(RI)
  30. {
  31. RI=0;
  32. i=SBUF;
  33. SBUF=i;
  34. while(TI==0);
  35. TI=0;
  36. }
  37. //else
  38. //{
  39. //TI=0;
  40. //SBUF=i;
  41. //}
  42. }



關(guān)鍵詞: VSPDKeil串口調(diào)

評(píng)論


技術(shù)專區(qū)

關(guān)閉