91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

STM32串口中斷 DMA接收的幾點注意地方

黃工的嵌入式技術圈 ? 來源:黃工的嵌入式技術圈 ? 2020-03-04 13:57 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

今天寫點大家常問,也是常見的關于UART串口的內容。這幾點內容或許曾經也困惑了你很久。

1UART串口中斷接收

使能UART串口中斷之后,有接收到UART數據,進入中斷,此時要清除RXNE接收標志位:

1.通過軟件向該RXNE標志位寫入零來清零;

2.通過對 USART_DR 寄存器執行讀入操作將該位清零。

這里可以查看對應《參考手冊》,一般我們選擇第2種,通過讀取UART串口數據來清零。

1.中斷接收數據丟失

在UART串口中斷函數中,或者更高優先級中斷函數中長時間執行,導致接收丟失,所以,請勿在中斷函數中長時間執行。

特別有些人,還在中斷函數添加延時函數。實際應用中,只要不是特殊情況,比如測試某個功能可以添加延時函數,都不建議在中斷函數添加延時函數。

2.ORE上溢錯誤

ORE上溢錯誤是什么意思呢?可能很多人不了解,簡單說就是:UART接收到有數據,沒有去取,但又來了數據,此時就會產生ORE上溢錯誤。(請看“參考手冊”)

其實,上面這種長時間在占用中斷,就會導致UART接收數據上溢。

很多人沒有在意這個,如果是使能了中斷接收,標志位沒有清除,又有ORE上溢錯誤的話,程序就會不停地進入UART中斷。(大家不妨試一下,看一下是不是你代碼一直在UART中斷里面不停運行)。

3.使能接收中斷前,先清除接收標志位

有時候,在程序初始化的時候,就會接收到數據,這個時候建議大家先清除接收標志位再使能接收中斷。類似如下:

2

DMA接收串口數據

使用DMA接收串口數據,相信很多朋友都知道。這個可以理解為使用隊列,或者FIFO的形式,防止因高優先級中斷而打斷,導致接收數據丟失。

但很多人都遇到過,接收不到數據,或者數據異常的情況。所以,這里同樣有需要注意的地方。

1.使能UART之前,先使能DMA相關配置

這個和清除標志位一樣的道理,使能UART之前,先使能DMA相關配置,防止在配置過程中有接收數據。

2.ORE上溢錯誤導致不能使用DMA接收數據

導致不能DMA接收不到數據的根源,有一種可能就是有ORE上溢錯誤。

若在串口初始化并使能后到 DMA 使能之前有數據來,MCU是不能接收的。如果此時數據寄存器 USART_DR 存在一個數據,再來一個數據,就會導致ORE上溢錯誤。

一旦產生上溢錯誤后,就無法再觸發 DAM 請求,及時之后再啟動 DMA 也不行,無法觸發 DMA 請求就無法將數據寄存器內的數據及時轉移走,如此陷入死鎖。這就是串口無法正常接收的原因。

所以,最后提醒大家,配置時,請一定要注意這些細節。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • STM32
    +關注

    關注

    2295

    文章

    11034

    瀏覽量

    365886
  • uart
    +關注

    關注

    22

    文章

    1277

    瀏覽量

    104178
  • dma
    dma
    +關注

    關注

    3

    文章

    576

    瀏覽量

    103457
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    求助,關于stm32H7多DMA數據流問題求解

    情況如下:stm32H7配置了一個adc進行采樣,通過dma進行數據傳輸,串口接收和發送命令,用兩個dma數據流通道,采用的空閑
    發表于 07-29 15:02

    STM32407使用串口閑時中斷+DMA方式接收最大接收字節是多少?

    使用串口閑時中斷+DMA方式接收數據,波特率為460800,DMA接收長度為1024個字節,并開
    發表于 07-22 08:16

    STM32F407多機RS485串口通訊+地址位喚醒+DMA空閑線接收,無法進入中斷服務程序怎么處理?

    USART3_MspInit 1 / / USER CODE END USART3_MspInit 1 / } } 在主程序中開啟DMA接收和空閑線中斷: int main(void) { / USER
    發表于 07-10 07:28

    STM32串口下載軟件(FLYMCU)

    STM32串口下載軟件(FLYMCU),經典版本,親試可用。
    發表于 04-09 15:59 ?3次下載

    使用串口dma環形接收+空閑中斷,觸發空閑中斷后進入任務中拷貝數據發現拷貝的數據全為0,怎么處理?

    求助,我使用串口dma環形接收+空閑中斷,默認應該開了緩存,在觸發空閑中斷后進入任務中拷貝數據發現拷貝的數據全為0,但是我掛上調試之后在拷貝
    發表于 03-27 06:17

    stm32f105串口數據丟失的原因?

    hal庫通過dma空閑中斷接收數據,收到的數據直接通過串口打印出去,每隔一段時間出現接收到數據丟失是為啥呢
    發表于 03-14 13:38

    STM32F427串口接收和發送中斷同時使能,為什么會出現接收中斷丟數的情況?

    STM32F427芯片,針對UART7開啟串口接收緩存區非空中斷RXNE和串口傳輸完成中斷TC.
    發表于 03-11 07:05

    STM32F103在使用HAL庫1.8.5版本使用串口中斷發送數據的時候,出現huart2->TxXferCount為0了,為什么?

    STM32F103在使用HAL庫1.8.5版本使用串口中斷發送數據的時候,會出現huart2->TxXferCount為0了,但是并沒有清除掉TXEIE中斷也沒有使能TCIE中斷
    發表于 03-07 07:12

    串口中斷是內部中斷還是外部中斷串口中斷是怎么觸發的

    串口中斷通常被視為外部中斷。雖然串口控制器(如USART、UART等)可能集成在微控制器或處理器的內部,但從中斷的角度來看,串口中斷是由處理
    的頭像 發表于 01-29 15:03 ?1913次閱讀

    串口中斷需要清除標志位嗎,串口中斷標志位會自動清除嗎

    在電子通信領域,串口中斷作為一種重要的通信機制,廣泛應用于各種嵌入式系統和計算機設備中。串口中斷標志位的管理,尤其是是否需要手動清除以及是否會自動清除,是理解和實現串口通信的關鍵環節。
    的頭像 發表于 01-29 14:59 ?2001次閱讀

    串口中斷有什么用,串口中斷的觸發條件是什么

    在現代電子通信系統中,串口中斷作為一種高效的數據處理機制,扮演著至關重要的角色。它允許處理器在數據到達或發送完成時立即響應,從而提高系統的響應速度和效率。
    的頭像 發表于 01-29 14:56 ?2025次閱讀

    STM32串口接受中斷使用C++STL中的queue導致所有中斷失效

    ,FreeRTOS的heap設置為8k 有兩個中斷,1s觸發的定時器中斷串口接收中斷 遇到問題 串口
    發表于 01-24 10:21

    STM32CUBEMX(8)--USART通過定時器中斷方式接收不定長數據

    概述 本文利用中斷實現串口不定長接收(非DMA),使用HAL庫,將接收的數據打印出去。 DMA
    發表于 09-06 16:48

    STM32CUBEMX(6)--移植雅特力AT32F403AVGT7,雙串口通過DMA方式接收不定長數據

    (&huart3, UART_IT_IDLE);//使能串口2 IDLE中斷 printf(\"雙串口DMA接收例程\\\\r\\
    發表于 09-06 16:37

    STM32CUBEMX(2)--USART通過DMA方式接收不定長數據

    ,如下所示: 配置時鐘樹 STM32F0的最高主頻到48M,所以配置48即可: 串口配置 本次實驗使用的串口1進行串口通信,波特率配置為115200。 配置
    發表于 09-04 11:48
    主站蜘蛛池模板: 免费网站成人亚洲 | 亚偷熟乱区视频在线观看 | 天天想天天干 | 国产一级特黄aa大片爽爽 | 国产成人精品亚洲77美色 | 成人国产精品高清在线观看 | 电影天堂bt | 性性欧美 | 午夜精品久久久久久久99 | 91华人在线视频 | 在线观看黄a | 久久久精品免费视频 | 操爽视频| 日本高清中文字幕在线观穿线视频 | 欧美视频a| 国产精品福利午夜h视频 | 国产一级大片免费看 | 大蕉久久伊人中文字幕 | 99精品视频在线播放2 | 黄色免费毛片 | 丝袜美女被c | 久久精品国产99精品最新 | 国产精品免费拍拍1000部 | 一区二区中文字幕亚洲精品 | 天天摸天天做天天爽天天弄 | 欲妇放荡叫床很浪的小说 | 色视频网站色视频播放 | 午夜私人影院 | www.精品视频| 欧美色爱综合网 | 四虎最新紧急更新地址 | 久久久免费精品视频 | 亚洲欧美日韩国产一区二区三区精品 | 永久免费的拍拍拍网站 | 91网站在线看 | japanese色系tube日本护士 | 欧美成人免费大片888 | 亚洲免费在线看 | 特黄特色大片免费视频大全 | 一级特黄性生活大片免费观看 | 欧美成人看片一区二区三区 |