你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

CAN中断入口,用了复用到PB8,PB9,但中断入口用USB_LP_CAN1_RX0_IRQHandler可以,CAN1_RX1_IRQHandler无法进入

[复制链接]
lizhzh 提问时间:2023-8-25 21:27 / 未解决

使用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中断,接收的数据均正常。

收藏 评论3 发布时间:2023-8-25 21:27

举报

3个回答
STM1024 回答时间:2023-8-27 23:05:50

报文接收过滤,你配置了嘛?

butterflyspring 回答时间:2023-8-28 10:44:47
官方的库中有例程可以参考,CAN的外设都是一样的,很容易裁剪到你的工程上的。
xmshao 回答时间:2023-8-31 10:33:36
感觉基本概念有点不清晰。


CAN收发中断跟管脚如何复用肯定没有关系。发送中断只跟哪个邮箱空了有关;


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


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


FIFO1则进入_RX1_IRQHandler服务程序。
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版