找回密码
 立即注册

QQ登录

只需一步,快速开始

打印 上一主题 下一主题
开启左侧

[NUC] NUC240 CAN bus遇到bus-off如何自动恢复

[复制链接]
跳转到指定楼层
楼主
assman 发表于 2022-3-17 18:15:27 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
各位大大安安,我在BSP中CAN范例遇到CAN bus中断进到bus-off状态问题,导至message无法传送,想问除了重新上电复位之外,如何初始化让CAN bus自动恢复?
  1. void CAN0_IRQHandler(void)
  2. {
  3.     uint32_t u8IIDRstatus;

  4.     u8IIDRstatus = CAN0->IIDR;

  5.     if(u8IIDRstatus == 0x00008000) {      /* Check Status Interrupt Flag (Error status Int and Status change Int) */
  6.         /**************************/
  7.         /* Status Change interrupt*/
  8.         /**************************/
  9.         if(CAN0->STATUS & CAN_STATUS_RXOK_Msk) {
  10.             CAN0->STATUS &= ~CAN_STATUS_RXOK_Msk;   /* Clear RxOK status*/

  11.             printf("RxOK INT\n") ;
  12.         }

  13.         if(CAN0->STATUS & CAN_STATUS_TXOK_Msk) {
  14.             CAN0->STATUS &= ~CAN_STATUS_TXOK_Msk;    /* Clear TxOK status*/

  15.             printf("TxOK INT\n") ;
  16.         }

  17.         /**************************/
  18.         /* Error Status interrupt */
  19.         /**************************/
  20.         if(CAN0->STATUS & CAN_STATUS_EWARN_Msk) {
  21.             printf("EWARN INT\n") ;
  22.         }

  23.         if(CAN0->STATUS & CAN_STATUS_BOFF_Msk) {
  24.             printf("BOFF INT\n") ;
  25.         }
  26.     } else if(u8IIDRstatus != 0) {
  27.         printf("=> Interrupt Pointer = %d\n", CAN0->IIDR - 1);

  28.         CAN_MsgInterrupt(CAN0, u8IIDRstatus);

  29.         CAN_CLR_INT_PENDING_BIT(CAN0, ((CAN0->IIDR) - 1)); /* Clear Interrupt Pending */
  30.     } else if(CAN0->WU_STATUS == 1) {
  31.         printf("Wake up\n");

  32.         CAN0->WU_STATUS = 0;     /* Write '0' to clear */
  33.     }

  34. }
复制代码




分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 顶 踩
回复

使用道具 举报

沙发
admin 发表于 2022-3-18 16:35:58 | 只看该作者
可以参考M480的处理。
牛卧堂
回复 支持 反对

使用道具 举报

板凳
admin 发表于 2022-3-18 16:36:40 | 只看该作者

牛卧堂
回复 支持 反对

使用道具 举报

地板
admin 发表于 2022-3-18 16:36:51 | 只看该作者
前提是总线上的错误消失,否则下次还会出错
牛卧堂
回复 支持 反对

使用道具 举报

5#
 楼主| assman 发表于 2022-3-21 14:26:48 | 只看该作者
了解,感谢版大提醒~
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

新唐MCU