[其他ST产品] CAN中断入口,用了复用到PB8,PB9,但中断入口用USB_LP_CAN1_RX0_IRQHandler可以,CAN1_RX1_IRQHandler无法进入

[复制链接]
 楼主| laocuo1142 发表于 2023-8-28 16:10 | 显示全部楼层 |阅读模式
使用STM32F102CB,第一次使用CAN功能,用的I/O复用到PB8,PB9。看到网上说CAN接收中断在无复用管脚时候是使用USB_LP_CAN1_RX0_IRQHandler。复用管脚时候使用CAN1_RX1_IRQHandler,

在CAN1_RX1_IRQHandler中写的接收中断函数,却一直无法进入。在回环模式下,能看到接收数据正常,接收字节数和ID都正确,但回环模式也不能进入中断,发送时候在PB9能观察到输出波形。看所有寄存器数据均正常。困扰好久

后来实在找不到问题,就将USB_LP_CAN1_RX0_IRQHandler,USB_HP_CAN1_TX_IRQHandler均打开,却发现能进入USB_HP_CAN1_TX_IRQHandler中断,进一步将USB_HP_CAN1_TX_IRQHandler关闭,只有USB_LP_CAN1_RX0_IRQHandler,CAN1_RX1_IRQHandler两个打开,发现接收数据后进入了USB_LP_CAN1_RX0_IRQHandler中断。取消回环模式,从PB8引脚输入数据,还是只能进入USB_LP_CAN1_RX0_IRQHandler中断,接收的数据均正常。
失物招領 发表于 2023-9-10 15:36 | 显示全部楼层
既然正常,就这样呗,还想改啥
香水城 发表于 2023-9-10 15:56 | 显示全部楼层
CAN收发中断跟管脚如何复用肯定没有关系。发送中断只跟哪个邮箱空了有关;

接收中断只跟哪个FIFO接收到数据的事件有关。接收时数据具体被接收到哪个FIFO跟你

的CAN过滤器配置关联。如果数据接收到FIFO0就进入RX0_IRQHandle,若数据接收到

FIFO1则进入_RX1_IRQHandler服务程序。
风凉 发表于 2023-9-10 18:12 | 显示全部楼层
一般来说,是不是复用时钟没开啊?
未说出口的像你 发表于 2023-9-10 21:21 | 显示全部楼层
你是说复用好使,但是正常的时钟不好使是吧
将爱藏于深海 发表于 2023-9-11 00:05 | 显示全部楼层
为啥不能进入到中断呢?我也比较好奇
在曼谷的春 发表于 2023-9-11 03:03 | 显示全部楼层
你这个还挺算是经验的呢,很巧妙的把问题解决掉了
她已醉 发表于 2023-9-11 06:15 | 显示全部楼层
是不是需要配置啥才能实现回环模式进入到中断呢?
西洲 发表于 2023-9-11 09:36 | 显示全部楼层
估计是哪里配置不对导致的,因为你用的复用是OK,如果你开复用时钟,是不是之前的本来功能就变化了啊
月亮一键变蓝 发表于 2023-9-11 12:32 | 显示全部楼层
好用就行了,这个还是找到了原因的
温室雏菊 发表于 2023-9-11 15:01 | 显示全部楼层
用RX0部分都是OK的,用RX1部分都不行
白马过平川 发表于 2023-9-11 18:59 | 显示全部楼层
是不是这中断得配置一下才行,才能正常使用呢
Henryko 发表于 2023-9-11 21:42 | 显示全部楼层
时钟的问题吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1296

主题

6236

帖子

15

粉丝
快速回复 在线客服 返回列表 返回顶部