1. 程式人生 > >keil MDK 中使用虛擬串列埠除錯串列埠

keil MDK 中使用虛擬串列埠除錯串列埠

      題目有點拗口,想利用串列埠除錯Modbus啊,GPS啊什麼的,可是手頭沒有硬體,怎麼辦?其實位元組KEIL MDK和VSPD(這裡兩個軟體網上都很容易就可以下載到破解版,如果找不到可以給我聯絡)就可以,這樣除錯串列埠就會很方便了。看了很多的文章,寫的都很簡單(其實也很簡單:))。給出個詳細一點的教程。

1.      
利用VSPD將PC上的兩個虛擬串列埠連線起來。如圖我將COM4 和COM5連線起來。點選Addr

pair。


2.      
2.可以看到Virtual ports上將兩個虛擬串列埠連線到了一起了。


3.虛擬串列埠準備就緒了。先將直接輸入命令的方式來除錯。我們開啟KEIL MDK的,設定成模擬的模式。點DEBUG.在COMMAND串列埠輸入:MODE   COM4   9600,
 n,  8,  1


說明:

MODE命令的作用是設定被繫結計算機串列埠的引數。基本使用方式為:
MODE COMx baudrate, parity, databits, stopbits
其中:
COMx(x = 1,2,…)代表計算機的串列埠號;
baudrate代表串列埠的波特率;parity代表校驗方式;
databits代表資料位長度;
stopbits代表停止位長度。
例如:MODE COM1 9600, n, 8, 1
設定串列埠1。波特率為9 600,無校驗位,8位資料,1位停止位。
MODE COM2 19200, 1, 8, 1
設定串列埠2。波特率為19 200,奇校驗,8位資料,1位停止位。


4、點回車後,再輸入 ASSIGN COM4 <S1IN>
S1OUT

說明:
COMx代表計算機的串列埠,可以是COM1、COM2、COM3或其他;
inreg和outreg代表微控制器的串列埠。對於只有一個串列埠的普通微控制器,即SIN和SOUT;對於有兩個或者多個串列埠的微控制器,即SnIN和SnOUT(n=1,2,…即微控制器的串列埠號)。
例如:ASSIGN COM1 < SIN > SOUT
將計算機的串列埠1繫結到微控制器的串列埠(針對只有一個串列埠的微控制器)。
ASSIGN COM2 < SIN > SOUT
將計算機的串列埠2繫結到微控制器的串列埠0(針對有多個串列埠的微控制器,注意串列埠號的位置)。
需要注意的是,引數的括號是不能省略的,而outreg則是沒有括號的。

5、然後除錯程式。可以看到串列埠COM5打印出了串列埠1的資料了。


這樣就能夠將計算機的串列埠模擬成微控制器的串列埠了。在進行軟體模擬時,所有傳送到被繫結的計算機串列埠上的資料都會轉發到Keil模擬的微控制器串列埠上,使用者程式可以通過中斷處理程式或查詢方式接收到這些資料;同樣,微控制器程式中傳送到微控制器串列埠上的資料也會通過被繫結的計算機串列埠傳送出來,可以被其他軟體所接收。利用這個特點,就可以方便地模擬、除錯微控制器的串列埠部分程式。要注意的是,這兩個命令需要一起使用。