資料介紹
工作了一年多,寫(xiě)了不少單片機(jī)串口程序。感覺(jué)串口多字節(jié)接收部分的邏輯相對(duì)于配置寄存器跟串口回復(fù)來(lái)說(shuō),是有點(diǎn)難度的——寄存器配置基本上都是死的,串口回復(fù)多字節(jié)跟回復(fù)一字節(jié)只是多了一個(gè)循環(huán)。
串口接收程序是基于串口中斷的,單片機(jī)的串口每次接收到一字節(jié)數(shù)據(jù)產(chǎn)生一次中斷,然后再讀取某個(gè)寄存器就可以得到串口接收的數(shù)據(jù)了。然而在實(shí)際應(yīng)用當(dāng)中,基本上不會(huì)有單字節(jié)接收的情況。一般都是基于一定串口通信協(xié)議的多字節(jié)通信。在422或者485通信中,還可能是一個(gè)主機(jī)(一般是計(jì)算機(jī))帶多個(gè)從機(jī)(相應(yīng)的有單片機(jī)的板卡)。這就要求我們的單片機(jī)能夠在連續(xù)接收到的串口數(shù)據(jù)序列中識(shí)別出符合自己板卡對(duì)應(yīng)的通信協(xié)議,來(lái)進(jìn)行控制操作,不符合則不進(jìn)行任何操作。簡(jiǎn)而言之就是,單片機(jī)要在一串?dāng)?shù)據(jù)中找到符合一定規(guī)律的幾個(gè)字節(jié)的數(shù)據(jù)。
先來(lái)說(shuō)下怎樣定串口協(xié)議吧。這個(gè)協(xié)議指的不是串口底層的協(xié)議,而是前面提到的數(shù)據(jù)幀協(xié)議。一般都是有幀頭(2~3個(gè)字節(jié)吧),數(shù)據(jù)(長(zhǎng)度根據(jù)需要),結(jié)束位(1位,有時(shí)候設(shè)計(jì)成校驗(yàn)字節(jié),最簡(jiǎn)單的校驗(yàn)也就是前面所有數(shù)據(jù)求和)。比如0xaa 0x55 +(數(shù)據(jù)部分省略)+校驗(yàn)和(除了aa 55 之外數(shù)據(jù)的和),如果要是多板卡的話(huà)有時(shí)候還要在幀頭后面加一個(gè)板選字節(jié)(相當(dāng)于3字節(jié)幀頭了)。第一次寫(xiě)串口接收程序的時(shí)候,我首先想到的就是定義一個(gè)全局變量(實(shí)際上最好是定義局部靜態(tài)變量),初始值設(shè)置為 0,然后每進(jìn)一次中斷+1,然后加到串口通信協(xié)議的長(zhǎng)度的時(shí)候再清零。然后判斷幀頭、校驗(yàn)。寫(xiě)完了之后我自己都覺(jué)得不對(duì),一旦數(shù)據(jù)錯(cuò)開(kāi)了一位,后面就永遠(yuǎn)都接收不到數(shù)了。
無(wú)奈看了一下前輩們的代碼,跟我的思路差不多,只不過(guò)那個(gè)計(jì)數(shù)值跟接收到的數(shù)據(jù)時(shí)同時(shí)判斷的,而且每次中斷都要判斷,一旦不對(duì)計(jì)數(shù)的那個(gè)變量就清零。廢話(huà)少說(shuō),直接上一段代碼讓大家看看就明白了。(通信協(xié)議姑且按照簡(jiǎn)單的aa 55 一個(gè)字節(jié)數(shù)據(jù) 一個(gè)字節(jié)校驗(yàn),代碼是基于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ī)實(shí)現(xiàn)異步串行雙機(jī)通信多字節(jié)傳輸?shù)腃語(yǔ)言程序免費(fèi)下載
- 使用51單片機(jī)進(jìn)行EEPROM存儲(chǔ)器24C02讀取存儲(chǔ)多字節(jié)的程序免費(fèi)下載
- 使用51單片機(jī)進(jìn)行簡(jiǎn)單的串口通訊程序資料免費(fèi)下載
- 單片機(jī)的串口接收和發(fā)送數(shù)據(jù)的程序免費(fèi)下載
- 單片機(jī)按鍵發(fā)送串口的程序資料免費(fèi)下載 10次下載
- 單片機(jī)入門(mén)匯編之單片機(jī)接收計(jì)算機(jī)串口發(fā)送的數(shù)據(jù)程序免費(fèi)下載 14次下載
- ?51單片機(jī)串口通信詳細(xì)介紹-小白必看 2099次閱讀
- 兩個(gè)單片機(jī)之間串口通信的例程 8089次閱讀
- 使用匯編語(yǔ)言實(shí)現(xiàn)多字節(jié)BCD碼加法減法的詳細(xì)介紹 8726次閱讀
- 使用51單片機(jī)讀寫(xiě)AT29C040的C語(yǔ)言程序免費(fèi)下載 4812次閱讀
- HD44780讀寫(xiě)單片機(jī)C51程序免費(fèi)下載 4383次閱讀
- 使用單片機(jī)串口實(shí)現(xiàn)LED顯示電路的資料和程序說(shuō)明 7907次閱讀
- 單片機(jī)實(shí)現(xiàn)多機(jī)通信的資料和程序 7857次閱讀
- 如何對(duì)STC單片機(jī)進(jìn)行免掉電下載 2236次閱讀
- 8051單片機(jī)int字節(jié)的實(shí)現(xiàn) 3589次閱讀
- 使用51單片機(jī)進(jìn)行串口調(diào)試的基本方法有哪些 1.3w次閱讀
- 單片機(jī)串口通訊原理解析 3.4w次閱讀
- 單片機(jī)與PC串口通信的程序及電路圖詳解 1.5w次閱讀
- ch340g單片機(jī)下載程序電路原理 7.9w次閱讀
- 詳細(xì)圖文剖析STM32單片機(jī)串口一鍵下載電路與操作方法 4.7w次閱讀
- STC單片機(jī)程序燒錄與ISP下載相關(guān)知識(shí) 1w次閱讀
下載排行
本周
- 148V到5KW無(wú)橋LLC雙向逆變器的電路原理圖免費(fèi)下載
- 0.26 MB | 154次下載 | 10 積分
- 22KW逆變側(cè)功率管的損耗如何進(jìn)行計(jì)算詳細(xì)公式免費(fèi)下載
- 0.40 MB | 32次下載 | 2 積分
- 3高功率密度碳化硅MOSFET軟開(kāi)關(guān)三相逆變器損耗分析
- 2.27 MB | 30次下載 | 5 積分
- 4S7-200 可編程序控制器系統(tǒng)手冊(cè)
- 12.81 MB | 4次下載 | 免費(fèi)
- 5ATX電源 FSP_ATX-300PAF電路圖資料
- 0.18 MB | 1次下載 | 2 積分
- 6IP6541_L 150uA 低功耗,集成多種快充輸出協(xié)議中文資料
- 1.43 MB | 次下載 | 免費(fèi)
- 7PC5010 單通道20V_10A低邊高速驅(qū)動(dòng)器技術(shù)手冊(cè)
- 1.17 MB | 次下載 | 免費(fèi)
- 8GSV2201D 帶嵌入式MCU的DisplayPort 1.4到HDMI 2.0轉(zhuǎn)換器規(guī)格書(shū)
- 0.67 MB | 次下載 | 2 積分
本月
- 148V到5KW無(wú)橋LLC雙向逆變器的電路原理圖免費(fèi)下載
- 0.26 MB | 154次下載 | 10 積分
- 22KW逆變側(cè)功率管的損耗如何進(jìn)行計(jì)算詳細(xì)公式免費(fèi)下載
- 0.40 MB | 32次下載 | 2 積分
- 3高功率密度碳化硅MOSFET軟開(kāi)關(guān)三相逆變器損耗分析
- 2.27 MB | 30次下載 | 5 積分
- 4STM32F10x參考手冊(cè)資料
- 13.64 MB | 12次下載 | 1 積分
- 5OAH0428 V1.0英文規(guī)格書(shū)
- 5.86 MB | 8次下載 | 免費(fèi)
- 6光伏并網(wǎng)逆變器原理
- 7.31 MB | 6次下載 | 2 積分
- 7NS1081/NS1081S/NS1081Q USB 3.0閃存數(shù)據(jù)手冊(cè)
- 0.40 MB | 4次下載 | 2 積分
- 8S7-200 可編程序控制器系統(tǒng)手冊(cè)
- 12.81 MB | 4次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935132次下載 | 10 積分
- 2開(kāi)源硬件-PMP21529.1-4 開(kāi)關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191422次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183352次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81600次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73818次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65990次下載 | 10 積分
電子發(fā)燒友App






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