STM32H7串口中断服务函数会禁止中断

STM32H7
在中断服务函数HAL_UART_IRQHandler中,会禁止接收中断
在这里插入图片描述
同时也会禁止发送完成中断,调用UART_EndTransmit_IT来进行操作
在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 在STM32H7中,串口中断是通过配置中断优先级和编写中断处理函数来实现的。根据引用\[1\]和引用\[2\]的内容,程序卡死的根本原因是串口的中断优先级比FreeRTOS配置文件上的MAX_SYSCALL_INTERRUPT_PRIORITY要高。解决这个问题的方法是将串口中断中断优先级设置为比MAX_SYSCALL_INTERRUPT_PRIORITY低一级,并且在串口中断回调函数中避免调用FreeRTOS的API函数。此外,根据引用\[3\]的内容,由于STM32HAL库自动生成的中断处理函数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 ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值