当前位置: 首页> 健康> 美食 > 南宁网站建设_企业年金如何领取_长沙网站seo优化公司_百度搜索引擎怎么做

南宁网站建设_企业年金如何领取_长沙网站seo优化公司_百度搜索引擎怎么做

时间:2025/7/11 19:54:24来源:https://blog.csdn.net/Lhj0616/article/details/146906486 浏览次数:0次
南宁网站建设_企业年金如何领取_长沙网站seo优化公司_百度搜索引擎怎么做

STM32单片机使用CAN协议进行通信
引用这个博客的一段话

CAN的遥控帧(Remote Frame)的主要作用是请求其他节点发送具
有特定ID的数据帧。具体来说,当一个节点需要从另一个节点获取数
据时,它可以发送一个遥控帧,而不是直接发送数据。这个遥控帧包
含了请求数据的ID,但没有包含数据本身。接收到遥控帧的节点如果
拥有与遥控帧ID相匹配的数据帧,就会响应并发送相应的数据帧。这
种方式允许节点仅请求需要的数据,而不是不断发送可能不需要的数
据,从而提高了网络的效率和减少了不必要的数据传输。

我们使用,只需要在发送的时候将rtr设置为1即可。
eg:

u8 can1_send_msg(u32 id, u8 ide, u8 rtr, u8 *msg, u8 len)
can1_send_msg(0x12AB0001,1,0,canbuf,8);//接收的时候也只需要加一个额外的判断即可
//注意判断条件 rtr==2才是遥控帧,看手册
u8 can1_receive_msg(u32 id, u8 *buf)
{u32 rid = 0;u8 ide, rtr, len = 0;if (can1_pend_msg(0) == 0)return 0;          /* 没有接收到数据,直接退出 */can1_rx_msg(0, &rid, &ide, &rtr, &len, buf); /* 读取数据 */if (ide != 4|| rtr != 2 )       /* 不是扩展帧 / 不是远程帧 */{len = 0;    /* 接收错误 */}return len;
}

补充:

  1. 如果开启了接收中断,那在main函数中轮询接收就无效了
int main()
{
key=can1_receive_msg(0X12AB0001,canbuf);//开了中断这里就不好使了。
}
  1. 点对点通信 ≠ 远程帧:
  • 点对点通信可通过普通数据帧直接完成,无需远程帧。
  • 远程帧是一种请求机制,而非通信的必要条件。
关键字:南宁网站建设_企业年金如何领取_长沙网站seo优化公司_百度搜索引擎怎么做

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: