電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>可編程邏輯>USART中斷方式接收無響應(yīng)問題的一種情況及其處理方法資料下載

USART中斷方式接收無響應(yīng)問題的一種情況及其處理方法資料下載

2021-04-14 | pdf | 289.19KB | 次下載 | 5積分

資料介紹

調(diào)研:一、經(jīng)過調(diào)研:1.1 客戶除了使用USART做串口通信,還開啟了定時(shí)器中斷來進(jìn)行數(shù)據(jù)采集.1.2 定時(shí)器的優(yōu)先級比串口接收的優(yōu)先級高.1.3 定時(shí)器處理數(shù)據(jù)操作也比較頻繁.1.4 客戶使用的STM32F1標(biāo)準(zhǔn)庫(版本V3.5.0).二、經(jīng)過問題復(fù)現(xiàn)和使用ST-LINK在線調(diào)試和定位發(fā)現(xiàn):2.1 在出現(xiàn)這個(gè)問題的時(shí)候,程序不斷的進(jìn)入串口接收中斷,不能夠運(yùn)行到main主函數(shù)處理其他任務(wù)了.2.2 發(fā)現(xiàn)ORE標(biāo)志為‘1’,也就說明程序是發(fā)生了串口溢出錯(cuò)誤.2.3 客戶在進(jìn)入串口中斷后會(huì)調(diào)用USART_GetITStatus(USART2, USART_IT_RXNE)來獲取RXNE的值.如果RXNE為1則去讀取DR數(shù)據(jù)寄存器的數(shù)據(jù),讀取后RXNE為0,但是ORE的標(biāo)志依然為1,依然進(jìn)入了串口中斷.三、經(jīng)過分析以及我們可以通過我們芯片的用戶手冊可以得到以下信息:3.1 程序不斷進(jìn)入串口中斷是因?yàn)镺RE標(biāo)志始終為1,沒有被用戶清除掉:從上圖紅色部分我們可以看到,如果串口接收中斷開啟了,那么ORE為1時(shí)就會(huì)產(chǎn)生中斷.3.2.從下圖我們可以看到,順序執(zhí)行對USART_SR和USART_DR的操作就會(huì)清除ORE的標(biāo)志,客戶在中斷中執(zhí)行了以下操作,那為什么ORE標(biāo)志還沒有被清除呢?(R1執(zhí)行了讀USART_SR操作,R2執(zhí)行了讀USART_DR操作).3.3 我們可以看手冊中下表的解釋:3.3.1 ORE表征的是一個(gè)歷史事件,當(dāng)ORE為1時(shí),表明至少有1個(gè)數(shù)據(jù)已經(jīng)丟失.3.3.2這有2種可能發(fā)生的情況,RXNE為1的情況R3和RXNE為0的情況R4,如下圖中的解釋.3.3.3我們從上圖可以看出,3.2圖中的R1+R2操作只能處理RXNE為1的情況;當(dāng)RXNE為0的特殊情況, 就是在讀序列器件(在USART_SR寄存器讀訪問和USART_DR讀訪問之間)接收到新的數(shù)據(jù),數(shù)據(jù)SR雖然被讀過了,但是overrun事件依然發(fā)生了,以上操作是不能夠處理的:3.4 因此我們要在應(yīng)用中對ORE標(biāo)志進(jìn)行處理,即當(dāng)判斷發(fā)生ORE中斷的時(shí)候,我們再讀一次USART_DR的值,這樣如果沒有新的Overrun溢出事件發(fā)生的時(shí)候,ORE會(huì)被清除,然后程序就不會(huì)因?yàn)镺RE未被清除一直不斷的進(jìn)入串口中斷了,代碼處理如下:結(jié)論:對于這種情況,我們可以看到USART串口接收中斷使能了,那ORE中斷也就開啟了;為了消除在通過讀序列(USART_SR/USART_DR)的過程中產(chǎn)生的溢出錯(cuò)誤,我們可以嘗試在應(yīng)用程序中需要針對ORE標(biāo)志做一個(gè)處理來清除ORE標(biāo)志,使得串口通信可以正常的繼續(xù)工作.建議客戶在做串口通信時(shí)需要增加幀檢驗(yàn)功能,如CRC校驗(yàn)等...,當(dāng)發(fā)生ORE時(shí),幀校驗(yàn)肯定是通不過的,不會(huì)造成從機(jī)誤響應(yīng).(mbbeetchina)
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1電子電路原理第七版PDF電子教材免費(fèi)下載
  2. 0.00 MB  |  1491次下載  |  免費(fèi)
  3. 2單片機(jī)典型實(shí)例介紹
  4. 18.19 MB  |  95次下載  |  1 積分
  5. 3S7-200PLC編程實(shí)例詳細(xì)資料
  6. 1.17 MB  |  27次下載  |  1 積分
  7. 4筆記本電腦主板的元件識別和講解說明
  8. 4.28 MB  |  18次下載  |  4 積分
  9. 5開關(guān)電源原理及各功能電路詳解
  10. 0.38 MB  |  11次下載  |  免費(fèi)
  11. 6100W短波放大電路圖
  12. 0.05 MB  |  4次下載  |  3 積分
  13. 7基于單片機(jī)和 SG3525的程控開關(guān)電源設(shè)計(jì)
  14. 0.23 MB  |  4次下載  |  免費(fèi)
  15. 8基于AT89C2051/4051單片機(jī)編程器的實(shí)驗(yàn)
  16. 0.11 MB  |  4次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234313次下載  |  免費(fèi)
  3. 2PADS 9.0 2009最新版 -下載
  4. 0.00 MB  |  66304次下載  |  免費(fèi)
  5. 3protel99下載protel99軟件下載(中文版)
  6. 0.00 MB  |  51209次下載  |  免費(fèi)
  7. 4LabView 8.0 專業(yè)版下載 (3CD完整版)
  8. 0.00 MB  |  51043次下載  |  免費(fèi)
  9. 5555集成電路應(yīng)用800例(新編版)
  10. 0.00 MB  |  33562次下載  |  免費(fèi)
  11. 6接口電路圖大全
  12. 未知  |  30320次下載  |  免費(fèi)
  13. 7Multisim 10下載Multisim 10 中文版
  14. 0.00 MB  |  28588次下載  |  免費(fèi)
  15. 8開關(guān)電源設(shè)計(jì)實(shí)例指南
  16. 未知  |  21539次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935053次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537793次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234313次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191183次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
  14. 158M  |  183277次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138039次下載  |  免費(fèi)