簡體   English   中英

stm32沒有收到來自UART的Rx中斷

[英]stm32 doesn't receive a Rx interrupt from UART

我正在嘗試在stm32f4發現板上實現UART的簡單回顯(使用freertos)。 據我了解,這應該非常容易。 首先,我在任務中調用HAL_UART_Receive_IT(&huart3, &rx_char,1) 並且在收到中斷后, USART3_IRQHandler應該觸發。 然后在HAL_UART_RxCpltCallback我將執行HAL_UART_Transmit(&huart3, &rx_char, 1, timeout)並可能使用HAL_UART_Receive_IT重新啟用它。 我的想法正確嗎? 應該行嗎?

但就我而言,事實並非如此。 我正在嘗試從終端發送字符,但是USART3_IRQHandler從未觸發。 什么都沒發生。

該代碼是使用帶有Freertos,USART3,NVIC和啟用了USART3全局中斷的Stm32CubeMX生成的。

我也在主函數中調用__HAL_UART_ENABLE_IT(&huart3, UART_IT_RXNE) 怎么了? HAL_UART_Transmit完美運行。

HAL不是理想的庫。 如果出現問題,必須檢查寄存器。 您的問題看起來像是無法正常工作的NVIC。 檢查它,如果它沒有打開,請使用-NVIC_EnableIRQ(USART3_IRQn); 或者可能不是在USART3的CR1中打開RE寄存器。 無論如何,我要重復-檢查寄存器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM