Hi@Bert2023
通常我们是为一个MB设置一个ID,或者一个ID设置多个MB。
对于一个MB设置多个ID的情况可通过设置mask来实现,一般是这个ID是一段连续的,,例如0x35~0x45这类状况。
对于0x35,0x68,0x123,其值不是连续的,这样无法通过一个mask值来实现一个MB的接收、
下面这个文章是S32K1的FlexCAN mask设置的教程,这原理是和S32K3几乎一样,你可以参考下.
https://community.nxp.com/t5/S32K-Knowledge-Base/S32K1xx-FlexCAN-Mask-Setting-Demo/ta-p/1519753
"FlexCAN_Ip_ConfigRxMb(INST_FLEXCAN_0, RX_MB_IDX_0, &rx_info, 0x55)"这个函数并不设置filiter,如果你没有设置过filiter,那么默认是每个MB对设置的ID进行所有的比对。
简单来讲,如果你需要设置ID=0x35,ID=0x68,ID=0x123的接收报文,且默认不配置mask,那么你需要为每个ID设置一个MB:
FlexCAN_Ip_ConfigRxMb(INST_FLEXCAN_0, RX_MB_IDX_0, &rx_info, 0x35);
FlexCAN_Ip_ConfigRxMb(INST_FLEXCAN_0, RX_MB_IDX_1, &rx_info, 0x68);
FlexCAN_Ip_ConfigRxMb(INST_FLEXCAN_0, RX_MB_IDX_2, &rx_info, 0x123);
Hi@Bert2023
通常我们是为一个MB设置一个ID,或者一个ID设置多个MB。
对于一个MB设置多个ID的情况可通过设置mask来实现,一般是这个ID是一段连续的,,例如0x35~0x45这类状况。
对于0x35,0x68,0x123,其值不是连续的,这样无法通过一个mask值来实现一个MB的接收、
下面这个文章是S32K1的FlexCAN mask设置的教程,这原理是和S32K3几乎一样,你可以参考下.
https://community.nxp.com/t5/S32K-Knowledge-Base/S32K1xx-FlexCAN-Mask-Setting-Demo/ta-p/1519753