我正在与of of stm32f303k8一起工作。我可以传输数据,但无法接收数据;函数hal_can_receive((返回hal_timeout。我正在使用1m和32时钟。可以告诉我我们如何使用hal_can_receive((接收数据frome can
为了在STM32上接收can消息,您必须启用至少一个过滤器。该消息与所有过滤器进行了比较,并且需要将至少一个过滤器匹配以放入FIFO中。
您可以制作与所有消息匹配的过滤器。
sFilterConfig.FilterNumber = 0;
sFilterConfig.FilterMode = CAN_FILTERMODE_IDMASK;
sFilterConfig.FilterScale = CAN_FILTERSCALE_32BIT;
sFilterConfig.FilterIdHigh = 0x0000;
sFilterConfig.FilterIdLow = 0x0000;
sFilterConfig.FilterMaskIdHigh = 0x0000;
sFilterConfig.FilterMaskIdLow = 0x0000;
sFilterConfig.FilterFIFOAssignment = 0;
sFilterConfig.FilterActivation = ENABLE;
sFilterConfig.BankNumber = 14;