各位朋友,CAN通信中,怎样确保对方已经收到数据包了?

2019-12-21 12:10发布

各位朋友,CAN通信中,怎样确保对方已经收到数据包了?

要用,一发,一回应的方式么?,,
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
11条回答
zzipeng
2019-12-21 17:13
本帖最后由 zzipeng 于 2018-3-3 12:16 编辑

判断CAN发送邮箱标志,没有空闲邮箱就一直等待(可以再加上一个软件超时保护,防止一直死在这里),
有了就自动发了。。如下所示:
  1. void CAN_TX_SPeed(uint16_t id,int16_t data1)
  2. {
  3.         CanTxMsg tx_message;
  4.         tx_message.IDE = CAN_ID_STD;
  5.         tx_message.RTR = CAN_RTR_DATA;
  6.         tx_message.DLC = 2;
  7.         tx_message.StdId = id;   
  8.         tx_message.Data[0] = (u8)(data1>>8);         
  9.         tx_message.Data[1] = (u8)data1;

  10.         //CAN_Transmit(CAN1,&tx_message);
  11.         while(CAN_Transmit(CAN1,&tx_message)==CAN_TxStatus_NoMailBox);
  12. }
复制代码
ps,好像仍未解决如何知道对方收到没有~~啧啧啧

一周热门 更多>