Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // 500kbps
- hfdcan1.Instance = FDCAN1;
- hfdcan1.Init.ClockDivider = FDCAN_CLOCK_DIV1;
- hfdcan1.Init.FrameFormat = FDCAN_FRAME_CLASSIC;
- hfdcan1.Init.Mode = FDCAN_MODE_NORMAL;
- hfdcan1.Init.AutoRetransmission = ENABLE;
- hfdcan1.Init.TransmitPause = DISABLE;
- hfdcan1.Init.ProtocolException = DISABLE;
- hfdcan1.Init.NominalPrescaler = 16;
- hfdcan1.Init.NominalSyncJumpWidth = 1;
- hfdcan1.Init.NominalTimeSeg1 = 3;
- hfdcan1.Init.NominalTimeSeg2 = 4;
- hfdcan1.Init.DataPrescaler = 1;
- hfdcan1.Init.DataSyncJumpWidth = 1;
- hfdcan1.Init.DataTimeSeg1 = 1;
- hfdcan1.Init.DataTimeSeg2 = 1;
- hfdcan1.Init.StdFiltersNbr = 0;
- hfdcan1.Init.ExtFiltersNbr = 0;
- hfdcan1.Init.TxFifoQueueMode = FDCAN_TX_FIFO_OPERATION;
- if (HAL_FDCAN_Init(&hfdcan1) != HAL_OK)
- {
- Error_Handler();
- }
- // 667kbps
- hfdcan2.Instance = FDCAN2;
- hfdcan2.Init.ClockDivider = FDCAN_CLOCK_DIV1;
- hfdcan2.Init.FrameFormat = FDCAN_FRAME_CLASSIC;
- hfdcan2.Init.Mode = FDCAN_MODE_NORMAL;
- hfdcan2.Init.AutoRetransmission = ENABLE;
- hfdcan2.Init.TransmitPause = DISABLE;
- hfdcan2.Init.ProtocolException = DISABLE;
- hfdcan2.Init.NominalPrescaler = 8;
- hfdcan2.Init.NominalSyncJumpWidth = 1;
- hfdcan2.Init.NominalTimeSeg1 = 5;
- hfdcan2.Init.NominalTimeSeg2 = 6;
- hfdcan2.Init.DataPrescaler = 1;
- hfdcan2.Init.DataSyncJumpWidth = 1;
- hfdcan2.Init.DataTimeSeg1 = 1;
- hfdcan2.Init.DataTimeSeg2 = 1;
- hfdcan2.Init.StdFiltersNbr = 0;
- hfdcan2.Init.ExtFiltersNbr = 0;
- hfdcan2.Init.TxFifoQueueMode = FDCAN_TX_FIFO_OPERATION;
- if (HAL_FDCAN_Init(&hfdcan2) != HAL_OK)
- {
- Error_Handler();
- }
- // pass anything from any can instance to fifo0
- // it also doeant work if i use values like 0x18FA0000 / 0x1FFF0000
- FDCAN_FilterTypeDef sFilterConfig;
- sFilterConfig.IdType = FDCAN_EXTENDED_ID;
- sFilterConfig.FilterIndex = 1;
- sFilterConfig.FilterType = FDCAN_FILTER_MASK;
- sFilterConfig.FilterConfig = FDCAN_FILTER_TO_RXFIFO0;
- sFilterConfig.FilterID1 = 0x0000000;
- sFilterConfig.FilterID2 = 0x0000000;
- if (HAL_FDCAN_ConfigFilter(&hfdcan1, &sFilterConfig) != HAL_OK)
- {
- /* Filter configuration Error */
- Error_Handler();
- }
- if (HAL_FDCAN_ConfigFilter(&hfdcan2, &sFilterConfig) != HAL_OK)
- {
- /* Filter configuration Error */
- Error_Handler();
- }
- // this works
- // HAL_FDCAN_ConfigGlobalFilter(&hfdcan1, FDCAN_ACCEPT_IN_RX_FIFO0, FDCAN_ACCEPT_IN_RX_FIFO0, FDCAN_FILTER_REMOTE, FDCAN_FILTER_REMOTE);
- // HAL_FDCAN_ConfigGlobalFilter(&hfdcan2, FDCAN_ACCEPT_IN_RX_FIFO0, FDCAN_ACCEPT_IN_RX_FIFO0, FDCAN_FILTER_REMOTE, FDCAN_FILTER_REMOTE);
- // this doesn't work
- HAL_FDCAN_ConfigGlobalFilter(&hfdcan1, FDCAN_REJECT, FDCAN_REJECT, FDCAN_FILTER_REMOTE, FDCAN_FILTER_REMOTE);
- HAL_FDCAN_ConfigGlobalFilter(&hfdcan2, FDCAN_REJECT, FDCAN_REJECT, FDCAN_FILTER_REMOTE, FDCAN_FILTER_REMOTE);
- // STart FDCAN1
- if(HAL_FDCAN_Start(&hfdcan1)!= HAL_OK)
- {
- Error_Handler();
- }
- // STart FDCAN2
- if(HAL_FDCAN_Start(&hfdcan2)!= HAL_OK)
- {
- Error_Handler();
- }
- // Activate the notification for new data in FIFO0 for FDCAN1
- if (HAL_FDCAN_ActivateNotification(&hfdcan1, FDCAN_IT_RX_FIFO0_NEW_MESSAGE, 0) != HAL_OK)
- {
- /* Notification Error */
- Error_Handler();
- }
- // Activate the notification for new data in FIFO0 for FDCAN2
- if (HAL_FDCAN_ActivateNotification(&hfdcan2, FDCAN_IT_RX_FIFO0_NEW_MESSAGE, 0) != HAL_OK)
- {
- /* Notification Error */
- Error_Handler();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement