Board logo

标题: XEP100MAG用PE生成的CAN通讯 [打印本页]

作者: hynh    时间: 2012-5-3 22:43     标题: 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 (2012-5-3 22:43, 675.43 KB) / 下载次数 290
http://bbs.eccn.com/attachment.php?aid=19803&k=b68e87d6f6f99d6800ba7c07febd9c56&t=1716058977&sid=79ihdu
作者: 乔布斯的同学    时间: 2012-7-9 21:02

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




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0