stm32can接收

2019-07-21 02:58发布

走过路过的朋友:FIFO有两个报文,怎么同时处理这两个数据,要根据两个报文数据内容进行下一步动作,调用两次CAN_Receive吗?还是一次就行?一次调用结构体是一样的不会混淆嘛?if (CAN1->RF0R&=0x10)
{
CAN_Receive(CAN1,CAN_FIFO0,&RxMessage);
if((RxMessage.ExtId==xxxxxx,RxMessage.Data[0]==0x20)&&(RxMessage.ExtId==xxxxxx,RxMessage.Data[0]==0x20))
{
  TxMessage.Data[0]=0x20;
  TransmitMailbox=CAN_Transmit(CAN1,&TxMessage);
}
}这样能行吗?请求指教
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
Jayden
1楼-- · 2019-07-21 19:46
正点原子 发表于 2019-4-11 01:26
不,你查询有就读一次,如果fifo有,会一直提示你的。不是直接receive 两次,得按规矩来

我想两个FIFO存在两个报文的时候再接收,但是不知道怎么比较这两个报文的数据
Jayden
2楼-- · 2019-07-21 23:23
otto1230 发表于 2019-4-11 09:59
你接收两次然后做个比较不就行了,接收第一帧→保存在数组1→接收第二帧→保存在数组2→比较数组1和数组2

FIFO存储两个报文我再接收,应该怎么比较这两个报文的数据啊,我只需要这两个报文的Byte0的数据
Jayden
3楼-- · 2019-07-22 01:44
 精彩回答 2  元偷偷看……
正点原子
4楼-- · 2019-07-22 04:03
Jayden 发表于 2019-4-11 21:34
我只需要这两个报文的Byte0的数据

自己试验吧

一周热门 更多>