论坛元老
 
- 积分
- 3033
- 金钱
- 3033
- 注册时间
- 2021-12-3
- 在线时间
- 181 小时
|
探索者STM32F407开发板资料 资料盘(A盘)里的CAN通信实例中发送和接收都用的是标准ID,如果用扩展ID应怎么设置。例如:发送为u8 CAN1_Send_Msg(u8* msg,u8 len)
{
u8 mbox;
u16 i=0;
mbox=CAN1_Tx_Msg(0X00000066,1,0,len,msg);
while((CAN1_Tx_Staus(mbox)!=0X07)&&(i<0XFFF))i++;//等待发送结束
if(i>=0XFFF)return 1; //发送失败?
return 0; //发送成功;
}
怎么才能接收到上面发送的数据报文,接收改成这样吗?
u8 CAN1_Receive_Msg(u8 *buf)
{
u32 id;
u8 ide,rtr,len;
if(CAN1_Msg_Pend(0)==0)return 0; //没有接收到数据,直接退出
CAN1_Rx_Msg(0,&id,&ide,&rtr,&len,buf); //读取数据
if(id!=0x00000066||ide!=1||rtr!=0)len=0; //接收错误
return len;
} |
|