主題:串口問題 共有40142人關(guān)注過本帖 |
---|
ggg |
1樓 |
串口問題 Post By:2005-1-24 9:20:00 [只看該作者]
我是貴公司etr232i網(wǎng)絡(luò)模塊的用戶   我在進(jìn)行串口通訊的時(shí)候 往下面發(fā)數(shù)  各個(gè)字節(jié)的數(shù)據(jù)傳輸格式需要不一樣 比如第一個(gè)字節(jié)不加效驗(yàn)  而第二個(gè)奇偶位保持傳號(hào)  進(jìn)行了串口初始化函數(shù)后 在數(shù)據(jù)傳輸過程中 我改變數(shù)據(jù)傳輸格式無效  串口通訊不是很了解  我程序是這樣寫的 是什么地方錯(cuò)了:
#define LCR 3*2 . . main() { . . unsigned int tport = 0xff10; COM_NUM = 2;                     InitUART1 ( COM_NUM, 2 )          InstallISR  ( COM_NUM )   . . abyte = 0x00; PutOutputData  ( abyte )                              . . . UninstallISR  ( COM_NUM )   outport(tport + LCR, 0x80);  //DLAB 置0 outport(tport + LCR,0x2b);  //奇偶保持傳號(hào) InstallISR(COM_NUM); abyte = Pos[i].pos_no; PutOutputData  ( abyte )                           StartSend  () . . 第二個(gè)字節(jié)的格式始終沒有改變  是哪里有錯(cuò)誤? 望賜教 |
|
單帖管理 | 引用 | 回復(fù) |
zhl |
2樓 |
Post By:2005-1-24 9:51:00 [只看該作者]
outport(tport + LCR, 0x80) 執(zhí)行是用于設(shè)置波特率。所以如果僅僅改變奇偶校驗(yàn),只需要直接調(diào)用outport(tport + LCR,0x2b)即可。
|
|
單帖管理 | 引用 | 回復(fù) |
ggg |
3樓 |
Post By:2005-1-24 9:56:00 [只看該作者]
不好意思 寫錯(cuò)了 是
outport(tport + LCR, 0x00);  //DLAB 置0 outport(tport + LCR,0x2b);  //奇偶保持傳號(hào) |
|
單帖管理 | 引用 | 回復(fù) |
ggg |
4樓 |
Post By:2005-1-24 10:06:00 [只看該作者]
和UninstallISR  ( COM_NUM );InstallISR(COM_NUM);沒有關(guān)系嗎?
傳輸過程中直接調(diào)用 outport(tport + LCR,0x2b); 就可以PutOutputData  ( abyte )?  不需要再置中斷 和恢復(fù)中斷嗎? |
|
單帖管理 | 引用 | 回復(fù) |
ggg |
5樓 |
Post By:2005-1-24 10:20:00 [只看該作者]
我們仿真試過  確實(shí)收不到+了奇偶效驗(yàn)的第二個(gè)字節(jié) 
您能幫忙測(cè)試一下嗎? |
|
單帖管理 | 引用 | 回復(fù) |
ggg |
6樓 |
Post By:2005-1-24 11:54:00 [只看該作者]
測(cè)試程序以發(fā)至郵箱zhl@emtronix.com.cn
請(qǐng)查收  謝謝 |
|
單帖管理 | 引用 | 回復(fù) |
zhl |
7樓 |
Post By:2005-1-24 15:51:00 [只看該作者]
看了你的程序,沒有什么問題。請(qǐng)檢查你的接收方通訊參數(shù)是否也作了相應(yīng)的調(diào)整。
|
|
單帖管理 | 引用 | 回復(fù) |