单片机/MCU论坛
直播中

cherry1989

12年用户 961经验值
擅长:嵌入式技术
私信 关注

tc234的can1模块无法进入接收中断的原因?如何解决?

当我使用can模块的时候,数据收发都没有问题。但是当我使用can1模块时,发送没有问题,但是无法进入到接收中断。
我用示波器测量can收发器的RXD引脚时,发现也是有波形存在的,当我在主函数添加一个接收函数,发现程序也是可以进行数据的接收的,这就说明数据确实传输了过来,只是不能中断接收。

回帖(1)

刘满贵

2024-1-29 17:17:42
can1模块无法进入接收中断的原因可能有以下几点:

1. 中断配置问题:可能是没有正确配置CAN1接收中断的优先级或中断向量表,导致无法触发中断处理函数。检查中断配置是否正确。

2. 中断使能问题:确认CAN1的中断使能位是否设置正确,使能接收中断。

3. 中断标志位清除问题:在接收中断处理函数中,需要及时清除CAN1的接收中断标志位,否则会导致无法再次触发接收中断。确保在中断处理函数中清除了CAN1的接收中断标志位。

4. 优先级冲突问题:如果使用了多个中断源,可能存在中断优先级冲突的情况。请确保CAN1的中断优先级正确设置,并且没有与其他中断源的优先级冲突。

解决方法:

1. 检查CAN1模块的中断配置,确保中断相关的寄存器设置正确。

2. 确认CAN1的中断使能位是否正确设置。

3. 在CAN1的接收中断处理函数中,及时清除接收中断标志位。

4. 检查中断优先级的设置,确保没有与其他中断源的优先级冲突。

如果以上方法仍然无法解决问题,建议查阅相关的硬件手册或参考其他相关资料,以更详细地了解CAN1模块的工作原理,并进行进一步的调试和排查。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分