標(biāo)題:
關(guān)于單片機(jī)+sx1278無(wú)線模塊只能接收1個(gè)字節(jié)的問(wèn)題
[打印本頁(yè)]
作者:
a123456789abc
時(shí)間:
2018-11-3 19:25
標(biāo)題:
關(guān)于單片機(jī)+sx1278無(wú)線模塊只能接收1個(gè)字節(jié)的問(wèn)題
單片機(jī)使用 stc59c52 用的澤耀公司的 AS32-ttl-100 無(wú)線模塊 使用串口 接收 發(fā)送數(shù)據(jù) SCON=0x50 8位 TMOD = 0x20 8位自動(dòng)重裝在
TH1 = 0xfd TL1=0xfd 波特率 9600 發(fā)送波特率9600
發(fā)送端:模塊介紹 一次發(fā)送32字節(jié) 不滿(mǎn)32 等待3字節(jié) 認(rèn)為數(shù)據(jù)終止 模塊發(fā)射數(shù)據(jù)。
問(wèn)題 : SBUF 只能送到單片機(jī) 一個(gè)字節(jié)的數(shù)據(jù) 。
void jieshou() 接收的代碼
{
uchar b,a;
uint c=0x7fff;
while(c--)
{
if(0!=RI)
{
for(b=0;b<4;b++)
{
a=SBUF;
shuzu[b]=a;
c=0x7fff;
}
RI=0;
}
}
}
復(fù)制代碼
求解啊 試過(guò)很多種辦法了 但沒(méi)什么卵用 難道只能一個(gè)字節(jié)一個(gè)字節(jié)的發(fā)么
作者:
yzwzfyz
時(shí)間:
2018-11-3 21:36
9600的波特率傳送一個(gè)字節(jié)約需要1.5ms,在這個(gè)時(shí)間里足以將收到的字節(jié)保存起來(lái),而后再收下個(gè)字節(jié),如果5ms內(nèi)收不到就認(rèn)為結(jié)束了一幀,
你邏輯混亂!
正確的做法:串口中斷后首先清中斷標(biāo)記,再下載數(shù)據(jù),再保存數(shù)據(jù),再將保存數(shù)據(jù)的地址+1,退出中斷程序
你呢:中斷后,下載了4次數(shù)據(jù),用時(shí)不會(huì)超0.1ms,再下多些,也都是同一個(gè)數(shù)據(jù),因?yàn)橄聜(gè)數(shù)據(jù)還沒(méi)有到來(lái)!
作者:
devcang
時(shí)間:
2018-11-3 22:39
首先,使用電腦兩個(gè)串口,測(cè)試模塊是正常的,,,,,然后把單片機(jī)的串口程序?qū)﹄娔X通訊,看看是否正常。。。。。最后,單片機(jī)連接模塊,進(jìn)行通訊、接收測(cè)試 。
——這模塊,在壞掉的情況,會(huì)只收到1個(gè)字節(jié)的、模塊還會(huì)比正常時(shí)過(guò)熱。
作者:
hange_v
時(shí)間:
2018-11-3 22:45
發(fā)完一個(gè)再發(fā)下一個(gè),直到發(fā)完
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1