- UID
- 524843
- 性别
- 男
|
用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)
|