首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

XEP100MAG用PE生成的CAN通讯

XEP100MAG用PE生成的CAN通讯

用PE生成的程序,用定时器每200ms周期发送数据,遇到下面几个问题,麻烦各位大侠指教:
1、自动生成的CAN程序中的byte CAN1_SendFrameExt(dword MessageID,byte FrameType,byte Length,const byte *Data)函数是发送扩展帧数据的,但是为什么在函数中会有标准帧的判断:
if (((MessageID & CAN_EXTENDED_FRAME_ID) == CAN_EXTENDED_FRAME_ID) && ((MessageID & CAN_EXTENDED_FRAME_MASK) != 0U)) { /* Is the extended ID greater that 536870911? */
    return ERR_VALUE;                  /* If yes then error */
  }
这个函数导致程序无法运行,此处有何用呢?
2、删除上述语句,函数运行到
if ((CAN0TFLG & 0x07U) == 0U) {      /* Are all transmit buffers full? */
    ExitCritical();                    /* Enable global interrupts */
    return ERR_TXFULL;                 /* If yes then error */
  }
报发送缓冲器溢出故障,接收到错误帧?
附件是程序,麻烦大侠指教一下要如何修改程序,谢谢!

CAN.rar (675.43 KB)

遇到同样的问题,返回ERR_TXFULL错误,err=11
返回列表