Skocz do zawartości

[C] STM32 F103 - konfiguracja filtrów CAN w ID List mode


juras

Pomocna odpowiedź

Cześć,

Próbuję wykorzystać filtry CAN w trybie ID List mode. Nie mam problemów z zaprogramowaniem ich w trybie Mask mode. Tak wygląda wykorzystany już przeze mnie kod do konfiguracji w trybie Mask mode:

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

I tutaj jest wszystko w porządku. Skonfigurować filtry w trybie ID List próbuję za pomocą tego kodu:

sFilterConfig.FilterMode = CAN_FILTERMODE_IDLIST;
sFilterConfig.FilterScale = CAN_FILTERSCALE_32BIT;
sFilterConfig.BankNumber = 1
sFilterConfig.FilterNumber = 0
sFilterConfig.FilterIdHigh  = 0x20<<5;
sFilterConfig.FilterIdLow = 0;
sFilterConfig.FilterMaskIdHigh = 0;
sFilterConfig.FilterMaskIdLow = 0;
sFilterConfig.FilterFIFOAssignment = 0;
sFilterConfig.FilterActivation = ENABLE;
HAL_CAN_ConfigFilter(&hcan, &sFilterConfig);

Gdy próbuję użyć powyższej części kodu, węzeł CAN nie odbiera żadnych wiadomości.

Gdzie popełniam błąd/co przeoczyłem?

Z góry dziękuję za odpowiedź i pozdrawiam.

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.