2
我正在使用STM32F4Discovery工具包来构建一个简单的CAN接口。我设法配置它,所以我可以传输CAN消息,但是,我坚持接收它们。据我所知,为了接收CAN消息,它必须通过验收过滤器。我想将过滤器设置为接受从ID 0x700到0x7FF的所有(标准,2.0A)消息。我该怎么做呢?STM32F4Discovery:CAN过滤配置
我已阅读参考手册,但我不知道如何实际配置过滤。
void CAN_FilterConfiguration(void) {
CAN_FilterInitTypeDef CAN_FilterInitStructure;
/* CAN2 filter configuration */
CAN_FilterInitStructure.CAN_FilterNumber = 1; // filter number = 1 (0<=x<=13)
CAN_FilterInitStructure.CAN_FilterMode = CAN_FilterMode_IdMask;
CAN_FilterInitStructure.CAN_FilterScale = CAN_FilterScale_16bit;
CAN_FilterInitStructure.CAN_FilterIdHigh = 0x0000;
CAN_FilterInitStructure.CAN_FilterIdLow = 0x0000;
CAN_FilterInitStructure.CAN_FilterMaskIdHigh = 0x0000;
CAN_FilterInitStructure.CAN_FilterMaskIdLow = 0x0000;
CAN_FilterInitStructure.CAN_FilterFIFOAssignment = CAN_FIFO0; // FIFO = 0
CAN_FilterInitStructure.CAN_FilterActivation = ENABLE;
CAN_FilterInit(&CAN_FilterInitStructure);
}