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);
}