|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
串口發(fā)送一個(gè)以上的字節(jié)的問(wèn)題 |
| 作者:venturejg 欄目:單片機(jī) |
#include<reg51.h> void main(void) { unsigned CHAR a; TMOD=0x20; TL1=0xfd;TH1=0xfd; SCON=0xd8;PCON=0x00; TR1=1; while(1) { while(RI==0); a=SBUF; RI=0; SBUF=a; while(TI==0); TI=0; } } 以上是將接收到的字節(jié)立即發(fā)送回串口的程序,單個(gè)字節(jié)發(fā)送沒(méi)有問(wèn)題,發(fā)送十六進(jìn)制的'FF'返回是'FF',但發(fā)送一個(gè)字節(jié)以上時(shí),就不對(duì)了,發(fā)送'FFCO',接收到的只有一個(gè)'FF',不返回'C0',請(qǐng)教這是怎么回事,怎么解決? |
| 2樓: | >>參與討論 |
| 作者: xingyunlj 于 2005/1/6 11:20:00 發(fā)布:
! 先確認(rèn)一下單個(gè)字節(jié)是不是一定沒(méi)問(wèn)題吧,最好不要用FF來(lái)試 |
|
| 3樓: | >>參與討論 |
| 作者: zhang_lj 于 2005/1/6 11:21:00 發(fā)布:
建議開(kāi)辟一個(gè)緩沖區(qū),用中斷的方式發(fā)送 緩沖區(qū)存放發(fā)送的字符,發(fā)送一個(gè)字符,寫指針加1。。。。。 |
|
| 4樓: | >>參與討論 |
| 作者: venturejg 于 2005/1/6 11:34:00 發(fā)布:
發(fā)送單個(gè)字節(jié)沒(méi)有問(wèn)題 |
|
| 5樓: | >>參與討論 |
| 作者: venturejg 于 2005/1/6 11:36:00 發(fā)布:
我的問(wèn)題是怎么接收多個(gè)字符,接收到后再發(fā)送 |
|
| 6樓: | >>參與討論 |
| 作者: misin 于 2005/1/6 13:50:00 發(fā)布:
... sbuf 只存8位數(shù)據(jù)的吧 要接收多個(gè)字符,可以用個(gè)變量來(lái)記數(shù),如果沒(méi)收完,就返回,繼續(xù)等待RI=1咯 |
|
| 7樓: | >>參與討論 |
| 作者: venturejg 于 2005/1/6 14:39:00 發(fā)布:
我的程序同時(shí)發(fā)兩個(gè),怎么只能返回一個(gè)呀, |
|
| 8樓: | >>參與討論 |
| 作者: meng730507 于 2005/1/6 19:12:00 發(fā)布:
while(RI==0); 你一輩子也跳不出這句。! 程序應(yīng)該先寫后讀才對(duì)吧!另:確實(shí)不能用0XFF。用5A等較好 |
|
|
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |