版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
UART:UniversalAsynchronousReceiver/Transmitter,通用異步收發(fā)傳輸器,即我們通常說的串口。串口是工程師最常用的一種串行外設(shè),但在實(shí)際應(yīng)用中還是會經(jīng)常遇到各種問題。比如:丟失一字節(jié)數(shù)據(jù)。今天我們就結(jié)合STM32來講講UART相關(guān)內(nèi)容,以及容易丟失一字節(jié)數(shù)據(jù)的問題。UART幾個標(biāo)志位這里重點(diǎn)說一下UART狀態(tài)寄存器中的幾個標(biāo)志位:TXE、TC、RXNE、ORE。
這幾個標(biāo)志位在編程中經(jīng)常使用,數(shù)據(jù)丟失有可能就是對它們操作不當(dāng)而導(dǎo)致出錯。
TXE:發(fā)送數(shù)據(jù)寄存器為空(Transmitdataregisterempty)0:數(shù)據(jù)未傳輸?shù)揭莆患拇嫫?:數(shù)據(jù)傳輸?shù)揭莆患拇嫫?/p>
TC:發(fā)送完成(Transmissioncomplete)0:傳送未完成1:傳送已完成
RXNE:讀取數(shù)據(jù)寄存器不為空(Readdataregisternotempty)0:未接收到數(shù)據(jù)1:已準(zhǔn)備好讀取接收到的數(shù)據(jù)
ORE:上溢錯誤(Overrunerror)0:無上溢錯誤1:檢測到上溢錯誤UART通信接口UART常見通信接口有:TTL、RS232、RS485。在編程時需要考慮通信接口方式,在長距離通信的時候,需要考慮線路上的延時,如果操作不當(dāng)也會導(dǎo)致數(shù)據(jù)丟失。1.TTLTTL比較簡單,就是直接連接UART的Tx和Rx引腳,不需要外部轉(zhuǎn)換。如圖:
注意:Tx和Rx引腳需要交叉連接。
2.RS232RS-232標(biāo)準(zhǔn)接口是常用的串行通信接口標(biāo)準(zhǔn)之一,規(guī)定邏輯“1”的電平為-5V~-15V,邏輯“0”的電平為+5V~+15V。選用該電氣標(biāo)準(zhǔn)的目的在于提高抗干擾能力,增大通信距離。3.RS485RS485一般采用兩線制接線方式,這種接線方式為總線式拓?fù)浣Y(jié)構(gòu),在同一總線上可以掛接多個節(jié)點(diǎn)。在低速、短距離、無干擾的場合可以采用普通的雙絞線;反之,在高速、長線傳輸時,則必須采用阻抗匹配(一般為120Ω)的RS485專用電纜;而在干擾惡劣的環(huán)境下還應(yīng)采用鎧裝型雙絞屏蔽電纜。UART接收丟失數(shù)據(jù)UART接收丟失數(shù)據(jù)與軟件和硬件都有可能有關(guān)系,下面說幾個常見丟失數(shù)據(jù)的原因及解決辦法。
1.接收溢出丟失數(shù)據(jù)指未及時取走數(shù)據(jù)導(dǎo)致溢出錯誤而丟失數(shù)據(jù),通常是發(fā)生在大量數(shù)據(jù)、以查詢方式接收數(shù)據(jù)的情況下。在MCU啟動過程中、接收數(shù)據(jù)過多處理不及時、復(fù)雜系統(tǒng)響應(yīng)不及時等情況都會出現(xiàn)數(shù)據(jù)丟失的情況。解決辦法:及時清除溢出錯誤標(biāo)志利用通信協(xié)議過濾因數(shù)據(jù)丟失導(dǎo)致的問題
2.接收中斷丟失數(shù)據(jù)使用UART中斷接收數(shù)據(jù)相比查詢接收數(shù)據(jù)的方式更常見,中斷方式比查詢方式響應(yīng)更及時,但不合理處理同樣也會存在數(shù)據(jù)丟失的情況。
在數(shù)據(jù)量大時,UART接收中斷函數(shù)耗時、優(yōu)先級低等情況下容易丟失數(shù)據(jù)。
解決辦法:中斷函數(shù)里減少不必要的耗時合理分配中斷優(yōu)先級使能中斷前清除標(biāo)志位
3.時鐘誤差導(dǎo)致丟失數(shù)據(jù)
在通信波特率較高的情況下,如果時鐘誤差加大,很可能導(dǎo)致數(shù)據(jù)丟失。
解決辦法:使用更高精度晶振降低通信波特率UART發(fā)送丟失數(shù)據(jù)UART發(fā)送丟失數(shù)據(jù)很多工程師都遇到過,通常情況下是傳輸未完成的原因。HAL庫已經(jīng)有幾年了,但還是有很多工程師都使用標(biāo)準(zhǔn)外設(shè)庫,這時如果自己封裝接口不當(dāng),就會存在發(fā)送最后一字節(jié)數(shù)據(jù)丟失的問題。
1.UART傳輸未完成導(dǎo)致數(shù)據(jù)丟失如下代碼,只考慮非空,但實(shí)際傳輸并未完成。voidUART_SendByte(uint8_tData){while(RESET
==
USART_GetFlagStatus(USART1,
USART_FLAG_TXE));USART_SendData(USART1,Data);}但發(fā)送非空不代表發(fā)送完成,雖然在某些場合更高效,但某些場合就會導(dǎo)致數(shù)據(jù)丟失。比如:使用此函數(shù)發(fā)送之后進(jìn)入休眠、關(guān)閉接收端設(shè)備電源等情況下。解決辦法:等待發(fā)送完成:voidUART_SendByte(uint8_tData){while(RESET
==
USART_GetFlagStatus(USART1,
USART_FLAG_TXE));USART_SendData(USART1,Data);while(RESET==USART_GetFlagStatus(USART1,USART_FLAG_TC));}如果使用標(biāo)準(zhǔn)外設(shè)庫,要根據(jù)實(shí)際情況封裝函數(shù),比如發(fā)送超時。
或者使用HAL封裝的接口,代碼包含判斷傳輸完成:HAL_StatusTypeDefHAL_UART_Transmit(UART_HandleTypeDef*huart,uint8_t*pData,uint16_tSize,uint32_tTimeout)2.線路延時導(dǎo)致數(shù)據(jù)丟失UART通常會使用232或者485以增加傳輸距離和增強(qiáng)干擾。但是一旦數(shù)據(jù)線路太長就存在傳輸延時的情況,特別是485傳輸長距離,并使用MCU控制傳輸方向的情況下。
解決辦法:軟件增加延時處理使用通信協(xié)議增加應(yīng)答機(jī)制3.其
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年濟(jì)南寶鋼鋼材加工配送有限公司招聘備考題庫含答案詳解
- 2026年派遣制阜陽市婦女兒童醫(yī)院人員招聘11人備考題庫及答案詳解參考
- 電力系統(tǒng)安全運(yùn)行與應(yīng)急管理規(guī)范
- 2026年長沙市城市建設(shè)檔案館公開招聘普通雇員備考題庫有答案詳解
- 2026年杭州市丁蕙第二小學(xué)編外人員招聘備考題庫及完整答案詳解一套
- 2026年重慶兩江新區(qū)大竹林社區(qū)衛(wèi)生服務(wù)中心招聘備考題庫及一套參考答案詳解
- 企業(yè)風(fēng)險管理策略與措施手冊
- 2025年中職鐵路運(yùn)輸管理(鐵路客運(yùn)服務(wù))試題及答案
- 2025年大學(xué)港口航道與海岸工程(港口施工技術(shù))試題及答案
- 2025年中職(機(jī)械制造技術(shù))零件加工階段測試題及答案
- 2026年托里國電投發(fā)電有限責(zé)任公司招聘備考題庫及1套完整答案詳解
- 2025-2026年魯教版八年級英語上冊期末真題試卷(+答案)
- 八年級下冊 第六單元寫作 負(fù)責(zé)任地表達(dá) 教學(xué)課件
- 26年三上語文期末密押卷含答題卡
- 2026屆云南省昆明市西山區(qū)民中數(shù)學(xué)高一上期末考試模擬試題含解析
- 2025年大學(xué)第一學(xué)年(食品營養(yǎng)與健康)營養(yǎng)學(xué)基礎(chǔ)測試題及答案
- 2025-2030烏干達(dá)基于咖啡的種植行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 2026年共青團(tuán)中央所屬單位招聘66人備考題庫及答案詳解一套
- 人民警察法培訓(xùn)課件
- 小糖人課件:糖尿病患者兒童糖尿病的護(hù)理
- 2026年哈爾濱職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性考試題庫參考答案詳解
評論
0/150
提交評論