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