uint32_t nMask = 0x0000001F;
uint32_t nId = 0x18;
Driver_CAN1.ObjectSetFilter(rx_obj_idx,ARM_CAN_FILTER_ID_MASKABLE_ADD,ARM_CAN_EXTENDED_ID(nId),nMask);
当前我传入的掩码低五位为1,代表我只关心低5位的值,即掩码标识符。
当前我传入的扩展帧ID为0x18,代表当收到消息后,滤波器会把收到的ID,针对我关心的哪几位,和我传入的ID作对比,即ID标识符,若相等则进行接收。
传入的掩码标识符和ID标识符会进行位操作产生真正的标识符存入滤波器寄存器中。