如图:已知了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; } } } |
RE:STM32 CAN如何通过PGN来过滤数据
这是J1939中文标准中的一部分,其中有关于如何在PDU中解析PGN的方法,供楼主参考吧
RE:STM32 CAN如何通过PGN来过滤数据
2、从缓冲区中读取到CAN数据,如果是要ID匹配就判断ID,如果是要PGN匹配就截取PGN。
RE:STM32 CAN如何通过PGN来过滤数据
为了过滤出一个标识符,应该设置过滤器组工作在标识符列表模式。