你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32 CAN如何通过PGN来过滤数据

[复制链接]
刘平辉 提问时间:2014-3-27 18:54 /
1395760559_1046.png
如图:已知了PGN,怎样才能过滤我想要的数据
CanRxMsg RxMessage;//定义一个接收CAN数据的变量
u8 can_rx_data[8];
RxMessage.StdId=0x00;
RxMessage.IDE=CAN_ID_STD;
RxMessage.DLC=0;
if(CAN_MessagePending(CAN_FIFO0))
{
CAN_Receive(CAN_FIFO0,&RxMessage);
if(XXXXXX == 0x00F601)//XXXXX表示一个关键的代码,我不知道是什么,但我想应该跟RxMessage有关,我想通过这个PGN的判断来得到我想要的数据,我该怎么做,求各位大神指点迷津,小弟感激不尽!!!!!
{
for(i=0;i < RxMessage.DLC;i++)
{
can_rx_data = RxMessage.Data;
}
}
}
收藏 评论3 发布时间:2014-3-27 18:54

举报

3个回答
我爱下载 回答时间:2014-3-28 12:45:51

RE:STM32 CAN如何通过PGN来过滤数据

这是J1939协议的解析,根据协议规定的CANID内容解析出PGN数据,然后比较就可以了。
这是J1939中文标准中的一部分,其中有关于如何在PDU中解析PGN的方法,供楼主参考吧
sc15-2.4.pdf (655.01 KB, 下载次数: 6)
废鱼 回答时间:2014-3-28 14:35:14

RE:STM32 CAN如何通过PGN来过滤数据

1、CAN数据接收放入缓冲区
2、从缓冲区中读取到CAN数据,如果是要ID匹配就判断ID,如果是要PGN匹配就截取PGN。
灰小子-1888763 回答时间:2014-3-30 17:59:32

RE:STM32 CAN如何通过PGN来过滤数据

为了过滤出一组标识符,应该设置过滤器组工作在屏蔽位模式。
为了过滤出一个标识符,应该设置过滤器组工作在标识符列表模式。

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版