資料介紹
工作了一年多,寫了不少單片機串口程序。感覺串口多字節(jié)接收部分的邏輯相對于配置寄存器跟串口回復(fù)來說,是有點難度的——寄存器配置基本上都是死的,串口回復(fù)多字節(jié)跟回復(fù)一字節(jié)只是多了一個循環(huán)。
串口接收程序是基于串口中斷的,單片機的串口每次接收到一字節(jié)數(shù)據(jù)產(chǎn)生一次中斷,然后再讀取某個寄存器就可以得到串口接收的數(shù)據(jù)了。然而在實際應(yīng)用當(dāng)中,基本上不會有單字節(jié)接收的情況。一般都是基于一定串口通信協(xié)議的多字節(jié)通信。在422或者485通信中,還可能是一個主機(一般是計算機)帶多個從機(相應(yīng)的有單片機的板卡)。這就要求我們的單片機能夠在連續(xù)接收到的串口數(shù)據(jù)序列中識別出符合自己板卡對應(yīng)的通信協(xié)議,來進行控制操作,不符合則不進行任何操作。簡而言之就是,單片機要在一串?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,然后每進一次中斷+1,然后加到串口通信協(xié)議的長度的時候再清零。然后判斷幀頭、校驗。寫完了之后我自己都覺得不對,一旦數(shù)據(jù)錯開了一位,后面就永遠都接收不到數(shù)了。
無奈看了一下前輩們的代碼,跟我的思路差不多,只不過那個計數(shù)值跟接收到的數(shù)據(jù)時同時判斷的,而且每次中斷都要判斷,一旦不對計數(shù)的那個變量就清零。廢話少說,直接上一段代碼讓大家看看就明白了。(通信協(xié)議姑且按照簡單的aa 55 一個字節(jié)數(shù)據(jù) 一個字節(jié)校驗,代碼是基于51單片機的)。接收成功則在中斷程序中把串口接收成功標(biāo)志位置1。

- 單片機多字節(jié)串口接收(轉(zhuǎn))
- 單片機串口接收多字節(jié)
- 單片機串口接收多字節(jié)數(shù)據(jù)
- 單片機進行串口發(fā)送和接受的程序免費下載
- 如何使51單片機與PC進行串口通信詳細資料和程序免費下載
- 使用51單片機進行串口通信的發(fā)送與接收的資料和程序免費下載
- 使用51單片機串口接收一個數(shù)組的程序免費下載
- 使用51單片機STC89C52進行串口接收的程序免費下載
- 使用單片機進行串口通信的程序免費下載
- 51單片機進行串行接收并顯示的程序免費下載
- 使用51單片機實現(xiàn)異步串行雙機通信多字節(jié)傳輸?shù)腃語言程序免費下載
- 使用51單片機進行EEPROM存儲器24C02讀取存儲多字節(jié)的程序免費下載
- 使用51單片機進行簡單的串口通訊程序資料免費下載
- 單片機的串口接收和發(fā)送數(shù)據(jù)的程序免費下載
- 單片機入門匯編之單片機接收計算機串口發(fā)送的數(shù)據(jù)程序免費下載 14次下載
- ?51單片機串口通信詳細介紹-小白必看 3.2k次閱讀
- 兩個單片機之間串口通信的例程 1.2w次閱讀
- 使用匯編語言實現(xiàn)多字節(jié)BCD碼加法減法的詳細介紹 9.4k次閱讀
- 使用51單片機讀寫AT29C040的C語言程序免費下載 5.8k次閱讀
- HD44780讀寫單片機C51程序免費下載 5.1k次閱讀
- 使用單片機串口實現(xiàn)LED顯示電路的資料和程序說明 8.9k次閱讀
- 單片機實現(xiàn)多機通信的資料和程序 8.5k次閱讀
- 如何對STC單片機進行免掉電下載 2.6k次閱讀
- 8051單片機int字節(jié)的實現(xiàn) 4.1k次閱讀
- 使用51單片機進行串口調(diào)試的基本方法有哪些 1.4w次閱讀
- 單片機串口通訊原理解析 3.5w次閱讀
- 單片機與PC串口通信的程序及電路圖詳解 1.6w次閱讀
- 詳細圖文剖析STM32單片機串口一鍵下載電路與操作方法 4.8w次閱讀
- 單片機與程序設(shè)計(上) 8.2k次閱讀
- STC單片機程序燒錄與ISP下載相關(guān)知識 1.1w次閱讀
下載排行
本周
- 1MDD品牌三極管BC807數(shù)據(jù)手冊
- 3.00 MB | 次下載 | 免費
- 2MDD品牌三極管BC817數(shù)據(jù)手冊
- 2.51 MB | 次下載 | 免費
- 3MDD品牌三極管D882數(shù)據(jù)手冊
- 3.49 MB | 次下載 | 免費
- 4MDD品牌三極管MMBT2222A數(shù)據(jù)手冊
- 3.26 MB | 次下載 | 免費
- 5MDD品牌三極管MMBTA56數(shù)據(jù)手冊
- 3.09 MB | 次下載 | 免費
- 6MDD品牌三極管MMBTA92數(shù)據(jù)手冊
- 2.32 MB | 次下載 | 免費
- 7STM32G474 HRTIME PWM 丟波問題分析與解決
- 1.00 MB | 次下載 | 3 積分
- 8新能源電動汽車高壓線束的銅鋁連接解決方案
- 2.71 MB | 次下載 | 2 積分
本月
- 1愛華AIWA HS-J202維修手冊
- 3.34 MB | 37次下載 | 免費
- 2PC5502負(fù)載均流控制電路數(shù)據(jù)手冊
- 1.63 MB | 23次下載 | 免費
- 3NB-IoT芯片廠商的資料說明
- 0.31 MB | 22次下載 | 1 積分
- 4H110主板CPU PWM芯片ISL95858HRZ-T核心供電電路圖資料
- 0.63 MB | 6次下載 | 1 積分
- 5UWB653Pro USB口測距通信定位模塊規(guī)格書
- 838.47 KB | 5次下載 | 免費
- 6技嘉H110主板IT8628E_BX IO電路圖資料
- 2.61 MB | 4次下載 | 1 積分
- 7蘇泊爾DCL6907(即CHK-S007)單芯片電磁爐原理圖資料
- 0.04 MB | 4次下載 | 1 積分
- 8蘇泊爾DCL6909(即CHK-S009)單芯片電磁爐原理圖資料
- 0.08 MB | 2次下載 | 1 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191439次下載 | 10 積分
- 5十天學(xué)會AVR單片機與C語言視頻教程 下載
- 158M | 183353次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81602次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73822次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評論