2017-02-23 01:31 AM
Hello,
I can configure can filters using filter mask mode, but I have problem with configuring them in ID List mode.
There is a code for ID mask mode i used:
sFilterConfig
.
BankNumber
=
0
;
sFilterConfig
.
FilterNumber
=
0
;
sFilterConfig
.
FilterMode
=
CAN_FILTERMODE_IDMASK
;
sFilterConfig
.
FilterScale
=
CAN_FILTERSCALE_32BIT
;
sFilterConfig
.
FilterIdHigh
=
0x10
<<
5
;
sFilterConfig
.
FilterIdLow
=
0
;
sFilterConfig
.
FilterMaskIdHigh
=
0xff
<<
5
;
sFilterConfig
.
FilterMaskIdLow
=
0
;
sFilterConfig
.
FilterFIFOAssignment
=
0
;
sFilterConfig
.
FilterActivation
=
ENABLE
;
HAL_CAN_ConfigFilter
(&
hcan
,
&
sFilterConfig
);
And it works fine. I tried to write analogous code for ID List mode:
sFilterConfig
.
FilterMode
=
CAN_FILTERMODE_IDLIST
;
sFilterConfig
.
FilterScale
=
CAN_FILTERSCALE_32BIT
;
sFilterConfig
.
BankNumber
=
1
sFilterConfig
.
FilterNumber
=
0
sFilterConfig
.
FilterIdHigh
=
0x10
<<
5
;
sFilterConfig
.
FilterIdLow
=
0
;
sFilterConfig
.
FilterMaskIdHigh
=
0
;
sFilterConfig
.
FilterMaskIdLow
=
0
;
sFilterConfig
.
FilterFIFOAssignment
=
0
;
sFilterConfig
.
FilterActivation
=
ENABLE
;
HAL_CAN_ConfigFilter
(&
hcan
,
&
sFilterConfig
);
With that code I can't receive any frames via CAN.
Where am I wrong?
#can-filter #stm32-can-can-filter-list #can2017-02-23 09:24 AM
Hi www1,
I suggest you to refer to this HAL example with STM32CubeF1, this will help you to configure the CAN filter:
STM32Cube_FW_F1_V1.4.0\Projects\STM3210E_EVAL\Examples\CAN\CAN_Networking
You can get inspired from this example and re-use sections available to develop your project.
Refer to the related reference manual
in the Controller area network (bxCAN) section, this will help you.Regards
Imen