Skocz do zawartości

Stm32 biblioteka HAL przerwania CAN


bremenpl

Pomocna odpowiedź

Witam,
Uzywam stm32Cube do generowania kodu dla SW4 ktorego uzywam w eclipse.

Staram sie usrawic przerwania RX dla CAN1, ale nie moge tego uruchomic, program counter nigdy nie wchodzi do obslugi przerwania. Wysylanie dziala.

Testowa procedura dla sprawdzenia wysylania:

CanTxMsgTypeDef TxMess;
 TxMess.ExtId = 0x234501;
 //TxMess.StdId = 0x241;
 TxMess.RTR = CAN_RTR_DATA;
 TxMess.IDE = CAN_ID_EXT;
 TxMess.DLC = 4;
 TxMess.Data[0] = 0x04;
 TxMess.Data[1] = 0x01;
 TxMess.Data[2] = 0x02;
 TxMess.Data[3] = 0x11;

 hcan1.pTxMsg = &TxMess;
 HAL_StatusTypeDef status1 = HAL_CAN_Transmit(&hcan1, 10);

Ponizsza funkcja zwraca 0, wiec wydaje mi sie ze prerwania RX sa wlaczone.

HAL_CAN_Receive_IT(&hcan1, CAN_FIFO0)

Czekam na przerwanie w miejscu wygenerowanym przez Cube:

* @brief This function handles CAN1 RX0 interrupts.
*/
void CAN1_RX0_IRQHandler(void)
{
 /* USER CODE BEGIN CAN1_RX0_IRQn 0 */

 /* USER CODE END CAN1_RX0_IRQn 0 */
 HAL_CAN_IRQHandler(&hcan1);
 /* USER CODE BEGIN CAN1_RX0_IRQn 1 */

 /* USER CODE END CAN1_RX0_IRQn 1 */
}

Ale nic nie dostaje. Nie ustawialem filtrow na CAN ID, wiec powinno czytac od kazdego ID. Czy o czyms zapomnialem?

W internecie nie moge praktycznie znalezc zadnych step-by-step tutoriali pokazujacych jak uzywac HAL'a, a sam doxygen z biblioteki nie ma praktycznych przykladow.

Bylbym wdzieczny za kazda pomoc.

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • 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.