資料介紹
工作了一年多,寫了不少單片機(jī)串口程序。感覺串口多字節(jié)接收部分的邏輯相對于配置寄存器跟串口回復(fù)來說,是有點難度的——寄存器配置基本上都是死的,串口回復(fù)多字節(jié)跟回復(fù)一字節(jié)只是多了一個循環(huán)。
串口接收程序是基于串口中斷的,單片機(jī)的串口每次接收到一字節(jié)數(shù)據(jù)產(chǎn)生一次中斷,然后再讀取某個寄存器就可以得到串口接收的數(shù)據(jù)了。然而在實際應(yīng)用當(dāng)中,基本上不會有單字節(jié)接收的情況。一般都是基于一定串口通信協(xié)議的多字節(jié)通信。在422或者485通信中,還可能是一個主機(jī)(一般是計算機(jī))帶多個從機(jī)(相應(yīng)的有單片機(jī)的板卡)。這就要求我們的單片機(jī)能夠在連續(xù)接收到的串口數(shù)據(jù)序列中識別出符合自己板卡對應(yīng)的通信協(xié)議,來進(jìn)行控制操作,不符合則不進(jìn)行任何操作。簡而言之就是,單片機(jī)要在一串?dāng)?shù)據(jù)中找到符合一定規(guī)律的幾個字節(jié)的數(shù)據(jù)。
先來說下怎樣定串口協(xié)議吧。這個協(xié)議指的不是串口底層的協(xié)議,而是前面提到的數(shù)據(jù)幀協(xié)議。一般都是有幀頭(2~3個字節(jié)吧),數(shù)據(jù)(長度根據(jù)需要),結(jié)束位(1位,有時候設(shè)計成校驗字節(jié),最簡單的校驗也就是前面所有數(shù)據(jù)求和)。比如0xaa 0x55 +(數(shù)據(jù)部分省略)+校驗和(除了aa 55 之外數(shù)據(jù)的和),如果要是多板卡的話有時候還要在幀頭后面加一個板選字節(jié)(相當(dāng)于3字節(jié)幀頭了)。第一次寫串口接收程序的時候,我首先想到的就是定義一個全局變量(實際上最好是定義局部靜態(tài)變量),初始值設(shè)置為 0,然后每進(jìn)一次中斷+1,然后加到串口通信協(xié)議的長度的時候再清零。然后判斷幀頭、校驗。寫完了之后我自己都覺得不對,一旦數(shù)據(jù)錯開了一位,后面就永遠(yuǎn)都接收不到數(shù)了。
無奈看了一下前輩們的代碼,跟我的思路差不多,只不過那個計數(shù)值跟接收到的數(shù)據(jù)時同時判斷的,而且每次中斷都要判斷,一旦不對計數(shù)的那個變量就清零。廢話少說,直接上一段代碼讓大家看看就明白了。(通信協(xié)議姑且按照簡單的aa 55 一個字節(jié)數(shù)據(jù) 一個字節(jié)校驗,代碼是基于51單片機(jī)的)。接收成功則在中斷程序中把串口接收成功標(biāo)志位置1。
- 單片機(jī)多字節(jié)串口接收(轉(zhuǎn))
- 單片機(jī)串口接收多字節(jié)
- 單片機(jī)串口接收多字節(jié)數(shù)據(jù)
- 單片機(jī)進(jìn)行串口發(fā)送和接受的程序免費(fèi)下載
- 如何使51單片機(jī)與PC進(jìn)行串口通信詳細(xì)資料和程序免費(fèi)下載
- 使用51單片機(jī)進(jìn)行串口通信的發(fā)送與接收的資料和程序免費(fèi)下載
- 使用51單片機(jī)STC89C52進(jìn)行串口接收的程序免費(fèi)下載
- 使用單片機(jī)進(jìn)行串口通信的程序免費(fèi)下載
- 51單片機(jī)進(jìn)行串行接收并顯示的程序免費(fèi)下載
- 使用51單片機(jī)實現(xiàn)異步串行雙機(jī)通信多字節(jié)傳輸?shù)腃語言程序免費(fèi)下載
- 使用51單片機(jī)進(jìn)行EEPROM存儲器24C02讀取存儲多字節(jié)的程序免費(fèi)下載
- 使用51單片機(jī)進(jìn)行簡單的串口通訊程序資料免費(fèi)下載
- 單片機(jī)的串口接收和發(fā)送數(shù)據(jù)的程序免費(fèi)下載
- 單片機(jī)按鍵發(fā)送串口的程序資料免費(fèi)下載 10次下載
- 單片機(jī)入門匯編之單片機(jī)接收計算機(jī)串口發(fā)送的數(shù)據(jù)程序免費(fèi)下載 14次下載
- ?51單片機(jī)串口通信詳細(xì)介紹-小白必看 1510次閱讀
- 兩個單片機(jī)之間串口通信的例程 5138次閱讀
- 使用匯編語言實現(xiàn)多字節(jié)BCD碼加法減法的詳細(xì)介紹 8435次閱讀
- 使用51單片機(jī)讀寫AT29C040的C語言程序免費(fèi)下載 4529次閱讀
- HD44780讀寫單片機(jī)C51程序免費(fèi)下載 4146次閱讀
- 使用單片機(jī)串口實現(xiàn)LED顯示電路的資料和程序說明 7372次閱讀
- 單片機(jī)實現(xiàn)多機(jī)通信的資料和程序 7540次閱讀
- 如何對STC單片機(jī)進(jìn)行免掉電下載 2118次閱讀
- 8051單片機(jī)int字節(jié)的實現(xiàn) 3402次閱讀
- 使用51單片機(jī)進(jìn)行串口調(diào)試的基本方法有哪些 1.3w次閱讀
- 單片機(jī)串口通訊原理解析 3.4w次閱讀
- 單片機(jī)與PC串口通信的程序及電路圖詳解 1.5w次閱讀
- ch340g單片機(jī)下載程序電路原理 7.8w次閱讀
- 詳細(xì)圖文剖析STM32單片機(jī)串口一鍵下載電路與操作方法 4.6w次閱讀
- STC單片機(jī)程序燒錄與ISP下載相關(guān)知識 9934次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費(fèi)下載
- 0.00 MB | 1490次下載 | 免費(fèi)
- 2單片機(jī)典型實例介紹
- 18.19 MB | 92次下載 | 1 積分
- 3S7-200PLC編程實例詳細(xì)資料
- 1.17 MB | 27次下載 | 1 積分
- 4筆記本電腦主板的元件識別和講解說明
- 4.28 MB | 18次下載 | 4 積分
- 5開關(guān)電源原理及各功能電路詳解
- 0.38 MB | 10次下載 | 免費(fèi)
- 6基于AT89C2051/4051單片機(jī)編程器的實驗
- 0.11 MB | 4次下載 | 免費(fèi)
- 7藍(lán)牙設(shè)備在嵌入式領(lǐng)域的廣泛應(yīng)用
- 0.63 MB | 3次下載 | 免費(fèi)
- 89天練會電子電路識圖
- 5.91 MB | 3次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費(fèi)
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費(fèi)
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費(fèi)
- 4LabView 8.0 專業(yè)版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費(fèi)
- 5555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33562次下載 | 免費(fèi)
- 6接口電路圖大全
- 未知 | 30320次下載 | 免費(fèi)
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費(fèi)
- 8開關(guān)電源設(shè)計實例指南
- 未知 | 21539次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935053次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537791次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233045次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191183次下載 | 免費(fèi)
- 7十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183277次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138039次下載 | 免費(fèi)
評論
查看更多