bremenpl Napisano Lipiec 25, 2015 Udostępnij Napisano Lipiec 25, 2015 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. Cytuj Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
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!