u8 CanSendData(u8 SID,u8 Target_Adr,u8 Instruction,u8 Fun_Code,vu8 Data[])
{
CanTxMsg TxMessage;
u16 i = 0;
u8 TransmitMailbox = 0;
// TxMessage.ExtId=((SID & 0x0000003f)<<22) | ((Target_Adr & 0x0000003f)<<16) |((Instruction & 0x000000ff)<<8)|(Fun_Code& 0x000000ff);
TxMessage.ExtId=0x00000000;
TxMessage.IDE=CAN_ID_EXT;
TxMessage.RTR=CAN_RTR_DATA;
//Datas of the TxMessage
TxMessage.DLC=6;
for(i=0;i<6;i++) //用于发送多bit
{
TxMessage.Data = Data;
}
TransmitMailbox = CAN_Transmit(CAN1,&TxMessage);//开始一个消息的传输
i = 0;
while((CAN_TransmitStatus(CAN1,TransmitMailbox) != CANTXOK) && (i != 0xFF))//通过检查CANTXOK位来确认发送是否成功
{
i++;
}
return 1;
}
当TxMessage.ExtId=0x00000000;CAN能成功发送,但是我把它改成比如TxMessage.ExtId=0x00000001;就不能成功发送,这是什么情况?
|