From 9d96b3d4f21d4b59a5bb9b1c82677a48263a43df Mon Sep 17 00:00:00 2001 From: Erick Ahmed Date: Thu, 18 Jun 2026 12:50:07 +0200 Subject: [PATCH] Start --- Core/Src/canlog.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/Core/Src/canlog.c b/Core/Src/canlog.c index 930a3ba..64a1370 100644 --- a/Core/Src/canlog.c +++ b/Core/Src/canlog.c @@ -49,19 +49,11 @@ void CAN_Logger_Init(CAN_HandleTypeDef *hcan1, CAN_HandleTypeDef *hcan2) filter.FilterActivation = ENABLE; filter.SlaveStartFilterBank = 14; - HAL_NVIC_SetPriority(CAN1_RX0_IRQn, 6, 0); - HAL_NVIC_EnableIRQ(CAN1_RX0_IRQn); - - HAL_NVIC_SetPriority(CAN2_RX0_IRQn, 6, 0); - HAL_NVIC_EnableIRQ(CAN2_RX0_IRQn); - filter.FilterBank = 0; if (HAL_CAN_ConfigFilter(hcan1, &filter) != HAL_OK) Error_Handler(); - if (HAL_CAN_Start(hcan1) != HAL_OK) Error_Handler(); filter.FilterBank = 14; if (HAL_CAN_ConfigFilter(hcan2, &filter) != HAL_OK) Error_Handler(); - if (HAL_CAN_Start(hcan2) != HAL_OK) Error_Handler(); } /* END CAN_Logger_Init */ @@ -120,8 +112,13 @@ void vCANListener(void *argument) osMessageQueueId_t queue = (hcan->Instance == CAN1) ? xCAN1RxQueue : xCAN2RxQueue; CanMessage_t message; + if (HAL_CAN_Start(hcan) != HAL_OK) Error_Handler(); HAL_CAN_ActivateNotification(hcan, CAN_IT_RX_FIFO0_MSG_PENDING); + uint32_t irqn = (hcan->Instance == CAN1) ? CAN1_RX0_IRQn : CAN2_RX0_IRQn; + HAL_NVIC_SetPriority(irqn, 6, 0); + HAL_NVIC_EnableIRQ(irqn); + for (;;) { if (osMessageQueueGet(queue, &message, NULL, osWaitForever) == osOK)