新手入门
- 积分
- 30
- 金钱
- 30
- 注册时间
- 2014-8-4
- 在线时间
- 0 小时
|
5金钱
u8 Can_Send_Msg(u8* msg,u8 len)
{
u8 mbox;
u16 i=0;
CanTxMsg TxMessage;
TxMessage.StdId=0x12; // 标准标识符为0
TxMessage.ExtId=0x13456; // 设置扩展标示符(29位)
// TxMessage.IDE=CAN_Id_Standard; // 使用标准标识符
TxMessage.IDE=CAN_Id_Extended;
TxMessage.RTR=CAN_RTR_Data; // 消息类型为数据帧,一帧8位
TxMessage.DLC=len; // 发送两帧信息
for(i=0;i<len;i++)
TxMessage.Data=msg; // 第一帧信息
mbox= CAN_Transmit(CAN1, &TxMessage);
i=0;
while((CAN_TransmitStatus(CAN1, mbox)==CAN_TxStatus_Failed)&&(i<0XFFF))i++; //等待发送结束
if(i>=0XFFF)return 1;
return 0;
}
仅仅改成了:TxMessage.IDE=CAN_Id_Extended;
TxMessage.RTR=CAN_RTR_Data; // 消息类型为数据帧,一帧8位
TxMessage.ExtId=0x13456; // 设置扩展标示符(29位)
循环发送扩展帧,USB-CAN仅仅能收到前两帧,把TxMessage.IDE=CAN_Id_Extended; 改为 TxMessage.IDE=CAN_Id_Standard; 收发完全正确,实在找不到原因了,有没有遇到这种情况的呀???
|
|