You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R5F10BAC单片机CAN接收缓冲区未填充、接收中断未触发原因排查

R5F10BAC CAN自收自发无接收中断/缓冲区无数据问题排查

不需要使用INTP0外部中断,CAN接收有专属的中断源,与外部中断无关联。以下是具体排查方向和解决步骤:

1. 确认CAN接收过滤与FIFO配置

  • 检查FIFO Buffer 0的过滤ID与掩码寄存器(如RFMSK00L/RFMSK00H、RFID00L/RFID00H等),确保发送报文的ID能匹配过滤规则。若ID不匹配,报文会被直接丢弃,无法进入接收缓冲区。
  • 验证RFCR0寄存器的RFEN位是否置1,确保FIFO Buffer 0处于接收使能状态。

2. 检查CAN中断配置

  • 确认RIER0寄存器的RIE0位已置1,开启FIFO 0的接收中断请求。
  • 检查全局中断是否开启(已执行EI指令,IE寄存器对应位置1),同时确认CAN模块的全局中断使能位(如CANIER寄存器相关位)是否正确设置。
  • 核对接收中断向量地址,确保中断服务函数绑定到正确的向量位置,避免中断触发后跳转至错误地址。

3. 物理层与回环模式设置

  • 若无外接CAN节点,需确认CAN控制器是否开启内部回环模式:多数CAN控制器默认不开启自回环,需通过寄存器(如CANCTR的相关位)主动配置,才能让发送的报文被自身接收端捕获。
  • 检查外接CAN收发器(如TJA1050)的工作状态:确认STB引脚处于正常工作模式,CAN_H与CAN_L间是否按需接入终端电阻(部分收发器需终端电阻才能正常自收自发)。

4. 轮询方式验证接收功能

  • 暂时关闭中断,轮询RFCR0寄存器的RFDF位(FIFO 0数据满标志)。若发送后该位置1,说明接收缓冲区已有数据,问题出在中断配置环节;若仍未置1,则需回到过滤、回环模式等配置项排查。

内容的提问来源于stack exchange,提问作者TDC5 - Multilink

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 06:52:14