Advertisement
Guest User

Untitled

a guest
Jul 11th, 2024
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.53 KB | Source Code | 0 0
  1.     // 500kbps
  2.       hfdcan1.Instance = FDCAN1;
  3.       hfdcan1.Init.ClockDivider = FDCAN_CLOCK_DIV1;
  4.       hfdcan1.Init.FrameFormat = FDCAN_FRAME_CLASSIC;
  5.       hfdcan1.Init.Mode = FDCAN_MODE_NORMAL;
  6.       hfdcan1.Init.AutoRetransmission = ENABLE;
  7.       hfdcan1.Init.TransmitPause = DISABLE;
  8.       hfdcan1.Init.ProtocolException = DISABLE;
  9.       hfdcan1.Init.NominalPrescaler = 16;
  10.       hfdcan1.Init.NominalSyncJumpWidth = 1;
  11.       hfdcan1.Init.NominalTimeSeg1 = 3;
  12.       hfdcan1.Init.NominalTimeSeg2 = 4;
  13.       hfdcan1.Init.DataPrescaler = 1;
  14.       hfdcan1.Init.DataSyncJumpWidth = 1;
  15.       hfdcan1.Init.DataTimeSeg1 = 1;
  16.       hfdcan1.Init.DataTimeSeg2 = 1;
  17.       hfdcan1.Init.StdFiltersNbr = 0;
  18.       hfdcan1.Init.ExtFiltersNbr = 0;
  19.       hfdcan1.Init.TxFifoQueueMode = FDCAN_TX_FIFO_OPERATION;
  20.       if (HAL_FDCAN_Init(&hfdcan1) != HAL_OK)
  21.       {
  22.         Error_Handler();
  23.       }
  24.  
  25.         // 667kbps
  26.       hfdcan2.Instance = FDCAN2;
  27.       hfdcan2.Init.ClockDivider = FDCAN_CLOCK_DIV1;
  28.       hfdcan2.Init.FrameFormat = FDCAN_FRAME_CLASSIC;
  29.       hfdcan2.Init.Mode = FDCAN_MODE_NORMAL;
  30.       hfdcan2.Init.AutoRetransmission = ENABLE;
  31.       hfdcan2.Init.TransmitPause = DISABLE;
  32.       hfdcan2.Init.ProtocolException = DISABLE;
  33.       hfdcan2.Init.NominalPrescaler = 8;
  34.       hfdcan2.Init.NominalSyncJumpWidth = 1;
  35.       hfdcan2.Init.NominalTimeSeg1 = 5;
  36.       hfdcan2.Init.NominalTimeSeg2 = 6;
  37.       hfdcan2.Init.DataPrescaler = 1;
  38.       hfdcan2.Init.DataSyncJumpWidth = 1;
  39.       hfdcan2.Init.DataTimeSeg1 = 1;
  40.       hfdcan2.Init.DataTimeSeg2 = 1;
  41.       hfdcan2.Init.StdFiltersNbr = 0;
  42.       hfdcan2.Init.ExtFiltersNbr = 0;
  43.       hfdcan2.Init.TxFifoQueueMode = FDCAN_TX_FIFO_OPERATION;
  44.       if (HAL_FDCAN_Init(&hfdcan2) != HAL_OK)
  45.       {
  46.         Error_Handler();
  47.       }
  48.  
  49.       // pass anything from any can instance to fifo0
  50.         // it also doeant work if i use values like 0x18FA0000 / 0x1FFF0000
  51.       FDCAN_FilterTypeDef sFilterConfig;
  52.       sFilterConfig.IdType = FDCAN_EXTENDED_ID;
  53.       sFilterConfig.FilterIndex = 1;
  54.       sFilterConfig.FilterType = FDCAN_FILTER_MASK;
  55.       sFilterConfig.FilterConfig = FDCAN_FILTER_TO_RXFIFO0;
  56.       sFilterConfig.FilterID1 = 0x0000000;
  57.       sFilterConfig.FilterID2 = 0x0000000;
  58.  
  59.  
  60.  
  61.       if (HAL_FDCAN_ConfigFilter(&hfdcan1, &sFilterConfig) != HAL_OK)
  62.       {
  63.         /* Filter configuration Error */
  64.         Error_Handler();
  65.       }
  66.       if (HAL_FDCAN_ConfigFilter(&hfdcan2, &sFilterConfig) != HAL_OK)
  67.       {
  68.         /* Filter configuration Error */
  69.         Error_Handler();
  70.       }
  71.  
  72.       // this works
  73. //    HAL_FDCAN_ConfigGlobalFilter(&hfdcan1, FDCAN_ACCEPT_IN_RX_FIFO0, FDCAN_ACCEPT_IN_RX_FIFO0, FDCAN_FILTER_REMOTE, FDCAN_FILTER_REMOTE);
  74. //    HAL_FDCAN_ConfigGlobalFilter(&hfdcan2, FDCAN_ACCEPT_IN_RX_FIFO0, FDCAN_ACCEPT_IN_RX_FIFO0, FDCAN_FILTER_REMOTE, FDCAN_FILTER_REMOTE);
  75.  
  76.  
  77.       // this doesn't work
  78.       HAL_FDCAN_ConfigGlobalFilter(&hfdcan1, FDCAN_REJECT, FDCAN_REJECT, FDCAN_FILTER_REMOTE, FDCAN_FILTER_REMOTE);
  79.       HAL_FDCAN_ConfigGlobalFilter(&hfdcan2, FDCAN_REJECT, FDCAN_REJECT, FDCAN_FILTER_REMOTE, FDCAN_FILTER_REMOTE);
  80.  
  81.        // STart FDCAN1
  82.       if(HAL_FDCAN_Start(&hfdcan1)!= HAL_OK)
  83.       {
  84.        Error_Handler();
  85.       }
  86.  
  87.       // STart FDCAN2
  88.       if(HAL_FDCAN_Start(&hfdcan2)!= HAL_OK)
  89.       {
  90.        Error_Handler();
  91.       }
  92.  
  93.       // Activate the notification for new data in FIFO0 for FDCAN1
  94.       if (HAL_FDCAN_ActivateNotification(&hfdcan1, FDCAN_IT_RX_FIFO0_NEW_MESSAGE, 0) != HAL_OK)
  95.       {
  96.         /* Notification Error */
  97.         Error_Handler();
  98.       }
  99.  
  100.  
  101.       // Activate the notification for new data in FIFO0 for FDCAN2
  102.       if (HAL_FDCAN_ActivateNotification(&hfdcan2, FDCAN_IT_RX_FIFO0_NEW_MESSAGE, 0) != HAL_OK)
  103.       {
  104.         /* Notification Error */
  105.         Error_Handler();
  106.       }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement