久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
(求助)51單片機串口接收字符串的問題
[打印本頁]
作者:
autumn888
時間:
2014-7-7 22:22
標題:
(求助)51單片機串口接收字符串的問題
當通過串口向單片機發送不確定長度的字符串時,如何校驗開始位和結束位,并且最終判斷所接收到的字符串的長度?
比如: 開始位用2位”AE“來表示,結束位用2位”BF“來表示, 當向單片機發送如”AE...BF"類型的字符串時, 單片機如何將這一字符串保存到一個預設的數組中,并且正確判斷這個字符串的長度?
哪位大蝦能否幫忙貼段代碼以參考?謝謝先
作者:
a110
時間:
2014-7-17 16:49
開始位何結束位這些都是由芯片的自動完成校驗的,
作者:
WKK001
時間:
2014-7-17 19:32
/***************串口中斷程序***************/
void com() interrupt 4 using 2
{
uchar a=0,c=0;
uint b=65535;
ES=0;
while(b--)
{
while(!RI);
RI=0;
c=SBUF;
if(c==0x10||c==0x02||c==0x03)
{
if(a!=0)
{
if(com_bus[a-1]==0x10) {com_bus[a-1]=c;} //若接收到的數據前面接收到了0X10 則過濾掉
else{com_bus[a]=c; a++; if(c==0x03){bz=1;}} //若接收的數據前面沒有0x10則送入緩沖區 若接收到0x03 則置接收完成標志
}
else {com_bus[a]=c; a++; if(c!=0x02) {b=0;} } //若接收數據幀頭不對,則跳出接收
}
else
{
com_bus[a]=c; a++; //若接收數據幀頭不對,則跳出接收
if(com_bus[0]!=0x02) {b=0;}
}
if(com_bus[0]==0x02&&c==0x03&&bz==1)
{
b=0;
bz=0;
}
}
ES=1;
}
作者:
WKK001
時間:
2014-7-17 19:35
這個是我原來琢磨的,當時跟你的想法一樣。這個接收長度可以不確定 ,接收幀頭判斷不對則退出,收到結尾也退出,數據送到緩沖區,希望對你有幫助
作者:
3263065307
時間:
2016-5-5 19:18
可是會出現數據的傳送缺失的情況怎么弄呀比如123456可能變為12356少一些數據呀,這個怎么辦呀
作者:
ankun11
時間:
2016-5-5 22:31
數據幀頭--數據長度--數據區--數據和
作者:
siked
時間:
2016-5-6 11:11
有種方法! 首先發個校驗,在發個字符長度,
然后 接受端就 循環取那個長度的個數!至于后面的問題可以 返回去學學 C語言的一些基礎!
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
精品伊人久久
|
欧美成人a
|
国产一区二区在线91
|
国产精品一区视频
|
欧美一级黄
|
91xxx在线观看
|
日韩视频在线免费观看
|
国产精品一区二区不卡
|
www97影院
|
免费看片国产
|
国产精品一区久久久
|
久久久久久亚洲
|
www.国产一区
|
a久久久久久
|
国产性网
|
日韩aⅴ片
|
亚洲精品一区二区三区中文字幕
|
久久综合色综合
|
国产激情在线观看视频
|
亚洲精品久久久久久久久久久久久
|
91黄色片免费看
|
九九热在线视频
|
亚洲一二三区免费
|
粉嫩av在线
|
亚洲成人精品
|
国产在线一区二区三区
|
91视频一区二区
|
日本欧美国产在线
|
精品国产精品三级精品av网址
|
91精品欧美久久久久久久
|
91精品国产91久久综合桃花
|
黄色片在线
|
91性高湖久久久久久久久_久久99
|
免费看黄色小视频
|
中文字幕在线观看第一页
|
中文字幕一区二区三区日韩精品
|
一区二区三区欧美
|
久久午夜精品福利一区二区
|
激情一区二区三区
|
五月天婷婷激情
|
国产精品色一区二区三区
|