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

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管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版