I have some trouble for 2 weeks now

My settings in Tuner studio MS are: Here is code for FDCAN initialization (36MHz FDCAN Clock) -> 500kbps :
Code: Select all
static void MX_FDCAN2_Init(void)
{
/* USER CODE BEGIN FDCAN2_Init 0 */
// Omogoči prekinitev za FDCAN2 v NVIC
FDCAN_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: Select all
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: Select all
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);
}