日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

利用VSPD、串口调试助手、Keil做串口调试

發布時間:2025/5/22 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 利用VSPD、串口调试助手、Keil做串口调试 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

下面詳細介紹下如何用虛擬串口調試串口發送接收程序。

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

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

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

左邊欄最上面的是電腦自帶的物理串口。點右邊的add pair,可以添加成對的串口。一對串口已經虛擬互聯了,如果添加的是COM3、COM4,用COM3發送數據,COM4就可以接收數據,反過來也可以。

?3、接下來的一步很關鍵。把KEIL和虛擬出來的串口綁定。現在把COM3和KEIL綁定。在KEIL中進入DEBUG模式。在最下面的COMMAND命令行,輸入

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

ASSIGN COM3 <SIN> SOUT(把單片機的串口和COM3綁定到一起。因為我用的單片機是STC89C52,只有一個串口,所以用SIN,SOUT,如果單片機有幾個串口,可以選擇S0IN,S0OUT,S1IN,S1OUT。)

為了不每次都重新綁定串口,可以建立一個初始化文件debug.ini。初始化文件是一個普通的文本文件,內容就是仿真時需要的命令,按照順序一行輸入一條。如圖2所示,建立了一個debug.ini的初始化文件。這樣,當每次進入仿真調試狀態時,Keil就會自動載入debug.ini 的內容進行初始化。

4.串口調試助手

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

?現在就可以開始調試串口發送接收程序了??梢酝ㄟ^KEIL發送數據,在串口調試助手中就可以顯示出來。也可以通過串口調試助手發送數據,在KEIL中接收。

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

這種方法的好處是不用硬件就可以調試。這是網上一篇文章介紹的方法.

?

[cpp] view plaincopy print?
  • //?利用VSPD、串口調試助手、Keil串口自發自收程序??
  • //測試通過??
  • ??
  • #include<reg52.h>??
  • #define?uchar?unsigned?char??
  • #define?uint?unsigned?int??
  • ??
  • uchar?i=0;??
  • ??
  • //串口初始化程序??
  • void?init_chuankou()??
  • {??
  • ????TMOD=0x20;??
  • ????TH1=0xfd;?//波特率9600??
  • ????TL1=0xfd;??
  • ????SM0=0;??
  • ????SM1=1;??
  • ????REN=1;??
  • ????EA=1;??
  • ????TR1=1;??
  • ????ES=1;??
  • }??
  • ??
  • void?main()??
  • {??
  • ????init_chuankou();??
  • ????while(1)??
  • ????{??
  • ??????????
  • ????}??
  • }??
  • ??
  • void?es()?interrupt?4??
  • {??
  • ????if(RI)??
  • ????{??
  • ????????RI=0;???
  • ????????i=SBUF;??
  • ????????SBUF=i;??
  • ????????while(TI==0);??
  • ????????TI=0;?????
  • ????}??
  • //??else??
  • //??{??
  • //??????TI=0;?????
  • //??????SBUF=i;??
  • //??}?????
  • }?????
  • // 利用VSPD、串口調試助手、Keil串口自發自收程序 //測試通過#include<reg52.h> #define uchar unsigned char #define uint unsigned intuchar i=0;//串口初始化程序 void init_chuankou() {TMOD=0x20;TH1=0xfd; //波特率9600TL1=0xfd;SM0=0;SM1=1;REN=1;EA=1;TR1=1;ES=1; }void main() {init_chuankou();while(1){} }void es() interrupt 4 {if(RI){RI=0; i=SBUF;SBUF=i;while(TI==0);TI=0; } // else // { // TI=0; // SBUF=i; // } }


    ?

    ?

    總結

    以上是生活随笔為你收集整理的利用VSPD、串口调试助手、Keil做串口调试的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。