RT1052 FLEXCAN 数据接收和发送冲突

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

RT1052 FLEXCAN 数据接收和发送冲突

Jump to solution
900 Views
FromCH0
Contributor II

RT1052主控芯片,利用FLEXCAN收发数据:

1 接收数据通过中断实现

void CAN2_IRQHandler(void)

{

……

}

2 发送数据通过回调函数(每5分钟执行一次;使用了FreeRTOS和LVGL)实现

void task_cb(lv_task_t * task)
{

res=CAN2_Send_Msg(canbuf_THO,8);

}

如果只接收数据是没问题的,如果回调函数每1个小时执行一次也没问题。但是,如果回调函数每5分钟执行一次,整个程序运行几天之后会死机。怎么解决这个问题?我知道,如果CAN数据收发频率过高,主控芯片会死掉,这是难免的。问题是,我发送数据是5分钟一次。

0 Kudos
1 Solution
887 Views
kerryzhou
NXP TechSupport
NXP TechSupport

Hi @FromCH0 ,

   从你的描述来讲,还是和你的APP 系统各task运行冲突有关。

   如果单独跑flexCAN, 哪怕就是用SDK的那种,没有系统,直接测试flexCAN, 5分钟一次,是否会死机呢?

  另外,你测过4分钟,或者6分钟,是否也会复现问题,另外死机的时候,有没有看看代码,到底死哪里了? 可以加些跟踪代码打印出来看看。

 

Best Regards,

Kerry

View solution in original post

0 Kudos
3 Replies
859 Views
FromCH0
Contributor II

问题已经解决了。应该是显示部分的程序有BUG,之前,这个BUG一直没修复,从而导致出现FlexCAN收发数据会有死机的现象。后来,把这个显示部分程序的BUG修复之后,FlexCAN已经能正常收发数据。迄今为止,程序已经连续(日夜不间断)测试7天,未出现之前的死机现象。坦率地说,RT1052系列是我用过的性能最强悍,稳定性很好,然后性价比又不错的一款MCU!

0 Kudos
853 Views
kerryzhou
NXP TechSupport
NXP TechSupport

@FromCH0 , 你很棒!通常这种多模块问题,如果遇到放一起,某个模块出问题,可以单独测试下,用于确认。

恭喜你。

后续有任何问题,欢迎继续发帖交流!

Best Regards,

kerry

0 Kudos
888 Views
kerryzhou
NXP TechSupport
NXP TechSupport

Hi @FromCH0 ,

   从你的描述来讲,还是和你的APP 系统各task运行冲突有关。

   如果单独跑flexCAN, 哪怕就是用SDK的那种,没有系统,直接测试flexCAN, 5分钟一次,是否会死机呢?

  另外,你测过4分钟,或者6分钟,是否也会复现问题,另外死机的时候,有没有看看代码,到底死哪里了? 可以加些跟踪代码打印出来看看。

 

Best Regards,

Kerry

0 Kudos