2 Commits

Author SHA1 Message Date
eeeck 89b5fe349c Clear CAN FIFO 0 overflow flag in RX callback 2026-07-29 23:51:30 +02:00
eeeck 2b445aac84 Validate CAN frame DLC before processing 2026-07-29 23:51:22 +02:00
+5 -1
View File
@@ -73,11 +73,15 @@ void HAL_CAN_RxFifo0MsgPendingCallback(CAN_HandleTypeDef *hcan)
osMessageQueueId_t queue;
osThreadId_t led_task;
// TODO: manage the case of FIFO overflow
if (__HAL_CAN_GET_FLAG(hcan, CAN_FLAG_FOV0) != RESET) __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_FOV0);
if (HAL_CAN_GetRxMessage(hcan, CAN_RX_FIFO0, &rxHeader, data) != HAL_OK) return;
if (rxHeader.DLC > 8) return;
if (rxHeader.IDE == CAN_ID_EXT) message.id = rxHeader.ExtId;
else message.id = rxHeader.StdId;
message.dlc = rxHeader.DLC;
message.isExtended = (rxHeader.IDE == CAN_ID_EXT);
message.source = (hcan->Instance == CAN1) ? 1 : 2;