在线时间4 小时
UID157542
注册时间2008-1-17
NXP金币0
该用户从未签到
注册会员

- 积分
- 87
- 最后登录
- 1970-1-1
|
用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, 下载次数: 35, 下载积分: 威望 1
|