找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 5624|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

keil mdk 利用虛擬串口調(diào)試的方法

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:99624 發(fā)表于 2015-12-27 02:40 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
需要用到三個(gè)軟件:KEILVSPD XP5virtual serial ports driver xp5.1虛擬串口軟件),串口調(diào)試助手。
  1、首先在KEIL里編譯寫好的程序:
  2、打開VSPD,界面如下圖所示:

左邊欄最上面的是電腦自帶的物理串口。點(diǎn)右邊的add pair,可以添加成對(duì)的串口。一對(duì)串口已經(jīng)虛擬互聯(lián)了,如果添加的是COM3、COM4,用COM3發(fā)送數(shù)據(jù),COM4就可以接收數(shù)據(jù),反過(guò)來(lái)也可以。
 3、接下來(lái)的一步很關(guān)鍵。把KEIL和虛擬出來(lái)的串口綁定,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ī)是AT892051,只有一個(gè)串口,所以用SIN,SOUT,如果單片機(jī)有幾個(gè)串口,可以選擇S0IN,S0OUT,S1IN,S1OUT。)
  4、打開串口調(diào)試助手

     可以看到虛擬出來(lái)的串口COM3、COM4,選擇COM4,設(shè)置為波特率4800,無(wú)校驗(yàn)位、8位數(shù)據(jù)位,1位停止位(和COM3、程序里的設(shè)置一樣)。打開COM4。
  現(xiàn)在就可以開始調(diào)試串口發(fā)送接收程序了。可以通過(guò)KEIL發(fā)送數(shù)據(jù),在串口調(diào)試助手中就可以顯示出來(lái)。也可以通過(guò)串口調(diào)試助手發(fā)送數(shù)據(jù),在KEIL中接收。
比如我將com4和com5連接,利用單片機(jī)串口2.輸入的命令為
MODE COM4 9600,n, 8, 1
ASSIGN COM4<S2IN> S2OUT

說(shuō)明:

MODE命令的作用是設(shè)置被綁定計(jì)算機(jī)串口的參數(shù);臼褂梅绞綖椋

MODE COMx baudrate, parity, databits, stopbits

其中:

COMx(x = 1,2,…)代表計(jì)算機(jī)的串口號(hào);

baudrate代表串口的波特率;parity代表校驗(yàn)方式;

databits代表數(shù)據(jù)位長(zhǎng)度;

stopbits代表停止位長(zhǎng)度。

例如:MODE COM1 9600, n, 8, 1

設(shè)置串口1。波特率為9 600,無(wú)校驗(yàn)位,8位數(shù)據(jù),1位停止位。

MODE COM2 19200, 1, 8, 1

設(shè)置串口2。波特率為19 200,奇校驗(yàn),8位數(shù)據(jù),1位停止位。

4、點(diǎn)回車后,再輸入 ASSIGN COM4 <S1IN>S1OUT

說(shuō)明:

COMx代表計(jì)算機(jī)的串口,可以是COM1、COM2、COM3或其他;

inreg和outreg代表單片機(jī)的串口。對(duì)于只有一個(gè)串口的普通單片機(jī),即SIN和SOUT;對(duì)于有兩個(gè)或者多個(gè)串口的單片機(jī),即SnIN和SnOUT(n=0,1,…即單片機(jī)的串口號(hào))。

例如:ASSIGN COM1 < SIN > SOUT

將計(jì)算機(jī)的串口1綁定到單片機(jī)的串口(針對(duì)只有一個(gè)串口的單片機(jī))。

ASSIGN COM2 < SIN > SOUT

將計(jì)算機(jī)的串口2綁定到單片機(jī)的串口0(針對(duì)有多個(gè)串口的單片機(jī),注意串口號(hào)的位置)。

需要注意的是,參數(shù)的括號(hào)是不能省略的,而outreg則是沒(méi)有括號(hào)的。

5、然后調(diào)試程序?梢钥吹酱贑OM5打印出了串口1的數(shù)據(jù)了。

這樣就能夠?qū)⒂?jì)算機(jī)的串口模擬成單片機(jī)的串口了。在進(jìn)行軟件仿真時(shí),所有發(fā)送到被綁定的計(jì)算機(jī)串口上的數(shù)據(jù)都會(huì)轉(zhuǎn)發(fā)到Keil模擬的單片機(jī)串口上,用戶程序可以通過(guò)中斷處理程序或查詢方式接收到這些數(shù)據(jù);同樣,單片機(jī)程序中發(fā)送到單片機(jī)串口上的數(shù)據(jù)也會(huì)通過(guò)被綁定的計(jì)算機(jī)串口發(fā)送出來(lái),可以被其他軟件所接收。利用這個(gè)特點(diǎn),就可以方便地仿真、調(diào)試單片機(jī)的串口部分程序。要注意的是,這兩個(gè)命令需要一起使用。


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表