英飞凌
直播中

石胜厚

7年用户 1071经验值
私信 关注

CAN中断对RX和TX无效怎么解决?

我目前正在使用 Aurix TC397 发送和接收帧,我设法发送了,但"transmissionCompletedEnabled" 的中断似乎不起作用。
我在 RX FIFO0 中接收到了帧,但中断 RX 也不起作用。
因为我没有进行中断,所以无法读取 FIFO 内的内容。
在我的配置中,我启用了 :


  • "transmissionCompletedEnabled" for TX
  • "rxFifo0NewMessageEnabled" for RX
我在中央处理器寄存器上检查过,确实已启用。
以下是我的 TX 中断配置:
g_mcmcan.canNodeConfig.中断配置.transmissionCompletedEnabled= TRUE;
g_mcmcan.canNodeConfig.中断配置.traco.中断配置= isr_priority_can_tx;
g_mcmcan.canNodeConfig.中断配置.traco.中断行= IfxCan_InterruptLine_2;
g_mcmcn.canNodeConfig.中断配置.traco.服务类型= IfxSrc_Tos_cpu0;

以下是我对 RX FIFO0 的中断配置:
g_mcmcan.canNodeConfig.中断配置.rxFifo0NewMessageEnabled= TRUE;
g_mcmcan.canNodeConfig.中断配置.rxf0f.中断= isr_priority_can_rx;
g_mcmcan.canNodeConfig.中断配置.rxf0f.中断行= IfxCan_InterruptLine_1;
g_mcmcan.canNodeConfig.中断配置.rxf0f.服务类型= IfxSrc_Tos_cpu0;

我不知道该去哪里找解决这个问题的办法。

谢谢,

回帖(1)

马占云

2024-5-22 17:41:58
要解决CAN中断对RX和TX无效的问题,请按照以下步骤操作:

1. 确保硬件连接正确:首先,请确保您的Aurix TC397与CAN收发器之间的硬件连接是正确的。检查CAN收发器的电源、地线和CAN总线连接。

2. 检查中断配置:请确保您已正确配置了中断。根据您的描述,您已经启用了"transmissionCompletedEnabled"和"rxFifo0NewMessageEnabled"。请确保这些配置在代码中正确设置。

3. 检查中断服务程序(ISR):确保您已经编写了相应的中断服务程序(ISR)来处理TX和RX中断。如果没有编写ISR,中断将无法正常工作。

4. 检查中断优先级:请确保您的中断优先级设置正确。如果中断优先级设置不正确,可能会导致中断无法触发。

5. 检查中断使能状态:请确保您的中断使能状态是正确的。您可以在中央处理器寄存器上检查中断使能状态,确保它们已启用。

6. 检查FIFO配置:请确保您的FIFO配置正确。根据您的描述,您已经启用了RX FIFO0。请确保FIFO的深度和水印设置正确。

7. 检查CAN控制器配置:请确保您的CAN控制器配置正确。这包括波特率、模式、过滤器等设置。

8. 使用调试工具:如果以上步骤都无法解决问题,您可以尝试使用调试工具(如示波器)来检查CAN总线上的信号。这将帮助您确定问题是否出在硬件上。

9. 查阅官方文档:最后,建议您查阅Aurix TC397的官方文档,以获取更多关于CAN中断配置和故障排除的信息。

通过以上步骤,您应该能够找到并解决CAN中断对RX和TX无效的问题。
举报

更多回帖

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