Statistics: Posted by franc — Wed Sep 03, 2025 8:09 am
Statistics: Posted by langwadt — Tue Sep 02, 2025 10:33 pm
Code:
static void MX_FDCAN2_Init(void){ /* USER CODE BEGIN FDCAN2_Init 0 */// Omogoči prekinitev za FDCAN2 v NVICFDCAN_FilterTypeDef sFilterConfig; //DeclareS CAN filter structure /* USER CODE END FDCAN2_Init 0 */ /* USER CODE BEGIN FDCAN2_Init 1 */ /* USER CODE END FDCAN2_Init 1 */ hfdcan2.Instance = FDCAN2; hfdcan2.Init.ClockDivider = FDCAN_CLOCK_DIV1; hfdcan2.Init.FrameFormat = FDCAN_FRAME_CLASSIC; hfdcan2.Init.Mode = FDCAN_MODE_NORMAL; hfdcan2.Init.AutoRetransmission = DISABLE; hfdcan2.Init.TransmitPause = DISABLE; hfdcan2.Init.ProtocolException = DISABLE; hfdcan2.Init.NominalPrescaler = 1; hfdcan2.Init.NominalSyncJumpWidth = 3; hfdcan2.Init.NominalTimeSeg1 = 3; hfdcan2.Init.NominalTimeSeg2 = 68; hfdcan2.Init.DataPrescaler = 2; hfdcan2.Init.DataSyncJumpWidth = 12; hfdcan2.Init.DataTimeSeg1 = 23; hfdcan2.Init.DataTimeSeg2 = 12; hfdcan2.Init.StdFiltersNbr = 1; hfdcan2.Init.ExtFiltersNbr = 0; hfdcan2.Init.TxFifoQueueMode = FDCAN_TX_FIFO_OPERATION; if (HAL_FDCAN_Init(&hfdcan2) != HAL_OK) { Error_Handler(); } /* USER CODE BEGIN FDCAN2_Init 2 */ sFilterConfig.IdType = FDCAN_STANDARD_ID; sFilterConfig.FilterIndex = 0; sFilterConfig.FilterType = FDCAN_FILTER_MASK; sFilterConfig.FilterConfig = FDCAN_FILTER_TO_RXFIFO0; sFilterConfig.FilterType = FDCAN_FILTER_RANGE; sFilterConfig.FilterID1 = 0x321; // Spodnja meja sFilterConfig.FilterID2 = 0x7FF ; // Zgornja meja if(HAL_FDCAN_ConfigFilter(&hfdcan2, &sFilterConfig) != HAL_OK){ Error_Handler();} if(HAL_FDCAN_Start(&hfdcan2) != HAL_OK){ Error_Handler();} if(HAL_FDCAN_ActivateNotification(&hfdcan2, FDCAN_IT_RX_FIFO0_NEW_MESSAGE, 0) != HAL_OK){ Error_Handler(); } // Optional: Activate error notifications (highly recommended for debugging) if(HAL_FDCAN_ActivateNotification(&hfdcan2, FDCAN_IT_RX_FIFO0_MESSAGE_LOST | FDCAN_IT_ERROR_WARNING | FDCAN_IT_BUS_OFF, 0) != HAL_OK){ Error_Handler(); } /* USER CODE END FDCAN2_Init 2 */}
Code:
void HAL_FDCAN_RxFifo0Callback(FDCAN_HandleTypeDef *hfdcan, uint32_t RxFifo0ITs){HAL_GPIO_TogglePin(LED_CAN_RX_GPIO_Port, LED_CAN_RX_GPIO_Port); if((RxFifo0ITs & FDCAN_IT_RX_FIFO0_NEW_MESSAGE) != RESET) { // Retrieve Rx messages from RX FIFO0 if (HAL_FDCAN_GetRxMessage(hfdcan, FDCAN_RX_FIFO0, &RxHeader, RxData) != HAL_OK) {Error_Handler();} if (HAL_FDCAN_ActivateNotification(&hfdcan2, FDCAN_IT_RX_FIFO0_NEW_MESSAGE, 0) != HAL_OK) { Error_Handler();} }}
Code:
static void MX_NVIC_Init(void){ /* FDCAN2_IT0_IRQn interrupt configuration */ HAL_NVIC_SetPriority(FDCAN2_IT0_IRQn, 0, 0); HAL_NVIC_EnableIRQ(FDCAN2_IT0_IRQn); /* FDCAN2_IT1_IRQn interrupt configuration */ HAL_NVIC_SetPriority(FDCAN2_IT1_IRQn, 0, 0); HAL_NVIC_EnableIRQ(FDCAN2_IT1_IRQn);}
Statistics: Posted by franc — Tue Sep 02, 2025 4:40 pm