AnsweredAssumed Answered

STM32 CAN Receive Mailbox

Question asked by sonam on Feb 20, 2013
Latest reply on Feb 22, 2013 by Amel N

Hi,

I am working with STM32F101 using CAN1 controller.

I configure the CAN filter to accept messages from 0x100 to 0x1FF as follows:

CAN_FilterInitTypeDef CAN_FilterInitStructure ;
CAN_FilterInitStructure. CAN_FilterNumber = 0 ;
CAN_FilterInitStructure. CAN_FilterMode = CAN_FilterMode_IdMask ;
CAN_FilterInitStructure. CAN_FilterScale = CAN_FilterScale_16bit ;
CAN_FilterInitStructure. CAN_FilterIdHigh = 0x100 << 5 ;
CAN_FilterInitStructure. CAN_FilterIdLow = 0x200 << 5 | 0x10 ;
CAN_FilterInitStructure. CAN_FilterMaskIdHigh = 0xFE0 << 5 ;
CAN_FilterInitStructure. CAN_FilterMaskIdLow = 0xFFF << 5 | 0x10 ;
CAN_FilterInitStructure. CAN_FilterFIFOAssignment = 0 ;
CAN_FilterInitStructure. CAN_FilterActivation = ENABLE ;       
CAN_FilterInit(&CAN_FilterInitStructure);

Now when I have CAN_FilterInitStructure.CAN_FilterFIFOAssignment = 0,I get the message frames in above range successfully.
But when CAN_FilterInitStructure.CAN_FilterFIFOAssignment =1,no frames are received.

So I would like to know,what is the role of this parameter?
Is it not to set the FIFO of receive mailbox?
If not what is the way to configure the Receive mailbox FIFO?

Outcomes