stm32 can错误中断不处理

项目场景:

xx

问题描述

设备上电后,第一次能进入can错误中断处理函数,之后就进不了了。


原因分析:

通过debug发现第二次的时候ERRI这个没有位没有被置1。

为什么没有被置1呢?

因为我的错误处理(先进入再退出初始化模式)这一操作不是在中断错误处理函数中操作的,是首先在中断错误处理函数中关闭can bus_off错误使能,然后在另一个定时器中断处理函数中操作的(can 快慢恢复的设计),问题就出在这里。在这个定时器中断处理函数中,我恢复完相应的can后,没有打开can bus_off错误使能,想着2s之后打开,但是由于2s内我发送了多包can数据,导致can TEC又到0xF8了。然后这个时候我打开can bus_off错误使能,硬件也不能置位ERRI了。如果TEC没有到0xF8之前给can bus_off错误使能打开,就可以了


解决方案:

总体的解决思路就是:在TEC没有到0xF8之前给can bus_off错误使能打开

相关推荐
雨疏风骤124014 小时前
【FreeRTOS】任务、任务状态
开发语言·stm32·c#·rtos
三佛科技-1341638421214 小时前
脉冲清洗机MCU方案开发设计
单片机·嵌入式硬件·智能家居·pcb工艺
Saniffer_SH15 小时前
【每日一题】PCIe 里的 RefClk (Reference Clock) 到底是干什么的?
服务器·驱动开发·单片机·嵌入式硬件·fpga开发·计算机外设·硬件架构
Darken0315 小时前
基于 STM32 ——GPIO输入
stm32·单片机·嵌入式硬件·gpio
影阴15 小时前
stm32 硬件i2c + hal库
stm32·单片机·嵌入式硬件
阿拉斯攀登15 小时前
在STM32上使用FreeRTOS
stm32·单片机·嵌入式硬件
richxu2025100116 小时前
嵌入式学习之路>(二)单片机核心原理篇>1.GPIO
单片机·嵌入式硬件·学习
恒锐丰小吕16 小时前
无锡黑锋 HF6213 高PSRR、低噪声射频LDO稳压器技术解析
嵌入式硬件·硬件工程
做cv的小昊16 小时前
在NanoPC-T6开发板上通过USB串口通信实现光源控制功能
java·后端·嵌入式硬件·边缘计算·安卓·信息与通信·开发
三佛科技-1341638421217 小时前
FT8433-LRT/FT8433-KRT低成本5V80MA非隔离电源方案 BUCK/BUCK-BOOST典型电路
单片机·嵌入式硬件·智能家居·pcb工艺