你好,我在配置280039C芯片的MCAN的过滤器时,发现第一个过滤器的sfid2无法正常工作,请问是什么原因呢?具体配置如下:
ConfigParams.filterConfig.anfs = 2U;
MCAN_config(MCANA_DRIVER_BASE, &ConfigParams );
StdFilterElement.sfid1 = 0x009U;
StdFilterElement.sfid2 = 0x0ADU;
StdFilterElement.sfec = 1U;
StdFilterElement.sft = 1U;
MCAN_addStdMsgIDFilter(MCANA_DRIVER_BASE, 0U, &StdFilterElement);
配置如上,sfid1正常工作,但是sfid2无法工作,请问是什么原因呢
SFID2确定Rx缓冲元素(在64个可能的元素中),其中将存储接受的帧(由相应的过滤器元素确定)。请参考C2000软件示例“mcan_ex10_receive_multiple_buffers”以了解其实现。
在上述例程中,
1.0x1属于过滤ID么?如果接收ID有0x1会怎么样?
2.为什么StdFilterElement.sfec = 1U;这种模式的两个ID不可以用?
3.例程没有配置filterConfig.anfs ,不是所有ID都会接受么?
ANFS=2表示不匹配的消息被拒绝。
StdFilterElement.sfec=1U;-->匹配的消息存储在RX FIFO0中
StdFilterElement.sft=1U;-->使用两个ID过滤器(从SFI1到SFID2)来过滤传入消息。
因此,根据您的配置,ID为0x09到0xAD的消息将存储在FIFO0中。所有其他不匹配的消息都将被拒绝。