stm32h7 串口中断
时间: 2023-08-01 21:08:51 浏览: 51
回答: 在STM32H7中,串口中断是通过配置中断优先级和编写中断处理函数来实现的。根据引用\[1\]和引用\[2\]的内容,程序卡死的根本原因是串口的中断优先级比FreeRTOS配置文件上的MAX_SYSCALL_INTERRUPT_PRIORITY要高。解决这个问题的方法是将串口中断的中断优先级设置为比MAX_SYSCALL_INTERRUPT_PRIORITY低一级,并且在串口中断回调函数中避免调用FreeRTOS的API函数。此外,根据引用\[3\]的内容,由于STM32的HAL库自动生成的中断处理函数UART_IRQHandler()没有对空闲中断进行处理,需要用户自行编写处理空闲中断的代码。
#### 引用[.reference_title]
- *1* *2* [FreeRTOS | STM32H7串口中断调用FreeRTOS API,导致程序卡死](https://blog.csdn.net/wallace89/article/details/117754540)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [(End)STM32H7串口空闲中断接收+DMA调试(HAL库)](https://blog.csdn.net/weixin_42024702/article/details/113096340)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]