Ó²ººÇ¶ÈëʽÂÛ̳

 ÕÒ»ØÃÜÂë
 Á¢¼´×¢²á
²é¿´: 1295|»Ø¸´: 7
ÊÕÆð×ó²à

[CAN/FDCAN] ˫·CANFDͬʱʹÓã¬CANFD2¹ýÂ˲»ÉúЧÎÊÌâ

[¸´ÖÆÁ´½Ó]

4

Ö÷Ìâ

19

»ØÌû

31

»ý·Ö

ÐÂÊÖÉÏ·

»ý·Ö
31
·¢±íÓÚ 2022-1-27 15:11:35 | ÏÔʾȫ²¿Â¥²ã |ÔĶÁģʽ
Ö÷ÒªÎÊÌâÊÇCANFD1Õý³££¬CANFD2¹ýÂ˲»ÉúЧ£¬¸½ÉÏÇý¶¯´úÂ룬ϣÍû´óÀÐ֧Ԯһϣ¬¹²Í¬½â¾ö
        FDCAN1_Handler.Instance = FDCAN1;
        FDCAN1_Handler.Init.FrameFormat = FDCAN_FRAME_CLASSIC;            //´«Í³Ä£Ê½
        FDCAN1_Handler.Init.Mode = FDCAN_MODE_NORMAL;                     //Õý³£Ä£Ê½
        FDCAN1_Handler.Init.AutoRetransmission = DISABLE;                 //¹Ø±Õ×Ô¶¯ÖØ´«£¡´«Í³Ä£Ê½ÏÂÒ»¶¨Òª¹Ø±Õ£¡£¡£¡
        FDCAN1_Handler.Init.TransmitPause = DISABLE;                      //¹Ø±Õ´«ÊäÔÝÍ£
        FDCAN1_Handler.Init.ProtocolException = DISABLE;                  //¹Ø±ÕЭÒéÒì³£´¦Àí

        //²¨ÌØÂÊÏà¹Ø               
        FDCAN1_Handler.Init.NominalSyncJumpWidth = sjw;                         //ÖØÐÂͬ²½ÌøÔ¾¿í¶È
        FDCAN1_Handler.Init.NominalPrescaler = 5000000/board;                                      //·ÖƵϵÊý
        FDCAN1_Handler.Init.NominalTimeSeg1 = 31;                                      //tsg1·¶Î§:2~256
        FDCAN1_Handler.Init.NominalTimeSeg2 = 8;                                      //tsg2·¶Î§:2~128

        FDCAN1_Handler.Init.MessageRAMOffset = 0;                         //ÐÅÏ¢RAMÆ«ÒÆ
        FDCAN1_Handler.Init.StdFiltersNbr = 127;                          //¿ÉÅäÖñê×¼Ö¡Â˲¨Æ÷¸öÊý         0-127
        FDCAN1_Handler.Init.ExtFiltersNbr = 63;                           //¿ÉÅäÖÃÀ©Õ¹Ö¡Â˲¨Æ÷¸öÊý          0-63
        FDCAN1_Handler.Init.RxFifo0ElmtsNbr = 64;                                //½ÓÊÕFIFO0ÔªËرàºÅ
        FDCAN1_Handler.Init.RxFifo0ElmtSize = FDCAN_DATA_BYTES_8;         //½ÓÊÕFIFO0ÔªËØ´óС£º8×Ö½Ú
        FDCAN1_Handler.Init.RxFifo1ElmtsNbr = 0;                                                  //ÉèÖÃRx FIFO1µÄÔªËظöÊý£¬·¶Î§0-64
        FDCAN1_Handler.Init.RxFifo1ElmtSize = FDCAN_DATA_BYTES_8;                                 //ÉèÖÃRx FIFO1ÖÐÿ¸öÔªËØ´óС£¬Ö§³Ö8,12,16,20,24,32,48»òÕß64×Ö½Ú
        FDCAN1_Handler.Init.RxBuffersNbr = 0;                                                     //ÉèÖÃRx Buffer¸öÊý£¬·¶Î§0-64
        FDCAN1_Handler.Init.RxBufferSize = 0;                                                     //ÉèÖÃRx BufferÖÐÿ¸öÔªËØ´óС£¬Ö§³Ö8,12,16,20,24,32,48»òÕß64×Ö½Ú
        FDCAN1_Handler.Init.TxEventsNbr = 0;                              //·¢ËÍʼþ±àºÅ
        FDCAN1_Handler.Init.TxBuffersNbr = 0;                             //·¢ËÍ»º³å±àºÅ
        FDCAN1_Handler.Init.TxFifoQueueElmtsNbr = 32;                     //·¢ËÍFIFOÐòÁÐÔªËرàºÅ
        FDCAN1_Handler.Init.TxFifoQueueMode = FDCAN_TX_FIFO_OPERATION;    //·¢ËÍFIFOÐòÁÐģʽ
        FDCAN1_Handler.Init.TxElmtSize = FDCAN_DATA_BYTES_8;              //·¢ËÍ´óС:8×Ö½Ú
        if(HAL_FDCAN_Init(&FDCAN1_Handler) != HAL_OK) return 1;           //³õʼ»¯FDCAN
               
        HAL_FDCAN_ConfigGlobalFilter(&FDCAN1_Handler, FDCAN_REJECT, FDCAN_REJECT, DISABLE, DISABLE);
        HAL_FDCAN_Start(&FDCAN1_Handler);                               //¿ªÆôFDCAN
        HAL_FDCAN_ActivateNotification(&FDCAN1_Handler,FDCAN_IT_RX_FIFO0_NEW_MESSAGE,FDCAN_INTERRUPT_LINE0);
        FDCAN_FilterTypeDef FDCAN1_RXFilter;

        FDCAN1_RXFilter.IdType=IDType;                       //±ê×¼ID
        FDCAN1_RXFilter.FilterIndex=Index;                                  //Â˲¨Æ÷Ë÷Òý                  
        FDCAN1_RXFilter.FilterType=FilterType;                   //Â˲¨Æ÷ÀàÐÍ
        FDCAN1_RXFilter.FilterConfig=FDCAN_FILTER_TO_RXFIFO0;           //¹ýÂËÆ÷0¹ØÁªµ½FIFO0  
        FDCAN1_RXFilter.FilterID1=ID1;                               //32λID
        FDCAN1_RXFilter.FilterID2=ID2;                               //Èç¹ûFDCANÅäÖÃΪ´«Í³Ä£Ê½µÄ»°£¬ÕâÀïÊÇ32λÑÚÂë
        if(HAL_FDCAN_ConfigFilter(&FDCAN1_Handler,&FDCAN1_RXFilter)!=HAL_OK)//Â˲¨Æ÷³õʼ»¯       

        FDCAN2_Handler.Instance=FDCAN2;
        FDCAN2_Handler.Init.FrameFormat = FDCAN_FRAME_CLASSIC;            //´«Í³Ä£Ê½
        FDCAN2_Handler.Init.Mode = FDCAN_MODE_NORMAL;                     //Õý³£Ä£Ê½
        FDCAN2_Handler.Init.AutoRetransmission = DISABLE;                 //¹Ø±Õ×Ô¶¯ÖØ´«£¡´«Í³Ä£Ê½ÏÂÒ»¶¨Òª¹Ø±Õ£¡£¡£¡
        FDCAN2_Handler.Init.TransmitPause = DISABLE;                      //¹Ø±Õ´«ÊäÔÝÍ£
        FDCAN2_Handler.Init.ProtocolException = DISABLE;                  //¹Ø±ÕЭÒéÒì³£´¦Àí

        //²¨ÌØÂÊÏà¹Ø               
        FDCAN2_Handler.Init.NominalSyncJumpWidth = sjw;                         //ÖØÐÂͬ²½ÌøÔ¾¿í¶È
        FDCAN2_Handler.Init.NominalPrescaler = 5000000/board;                                      //·ÖƵϵÊý

        FDCAN2_Handler.Init.NominalTimeSeg1 = 31;                                      //tsg1·¶Î§:2~256
        FDCAN2_Handler.Init.NominalTimeSeg2 = 8;                                      //tsg2·¶Î§:2~128

        FDCAN2_Handler.Init.MessageRAMOffset = 1280;                      //ÐÅÏ¢RAMÆ«ÒÆ
        FDCAN2_Handler.Init.StdFiltersNbr = 127;                          //¿ÉÅäÖñê×¼Ö¡Â˲¨Æ÷¸öÊý         0-127
        FDCAN2_Handler.Init.ExtFiltersNbr = 63;                                  //¿ÉÅäÖÃÀ©Õ¹Ö¡Â˲¨Æ÷¸öÊý          0-63
        FDCAN2_Handler.Init.RxFifo0ElmtsNbr = 64;                                           //ÉèÖÃRx FIFO0µÄÔªËظöÊý£¬·¶Î§0-64 */  
        FDCAN2_Handler.Init.RxFifo0ElmtSize = FDCAN_DATA_BYTES_8;                                 //ÉèÖÃRx FIFO0ÖÐÿ¸öÔªËØ´óС£¬Ö§³Ö8,12,16,20,24,32,48»òÕß64×Ö½Ú
        FDCAN2_Handler.Init.RxFifo1ElmtsNbr = 0;                                 //½ÓÊÕFIFO1ÔªËرàºÅ
        FDCAN2_Handler.Init.RxFifo1ElmtSize = FDCAN_DATA_BYTES_8;         //½ÓÊÕFIFO1ÔªËØ´óС£º8×Ö½Ú
        FDCAN2_Handler.Init.RxBuffersNbr = 0;                             //½ÓÊÕ»º³å±àºÅ
        FDCAN2_Handler.Init.TxEventsNbr = 0;                              //·¢ËÍʼþ±àºÅ
        FDCAN2_Handler.Init.TxBuffersNbr = 0;                             //·¢ËÍ»º³å±àºÅ
        FDCAN2_Handler.Init.TxFifoQueueElmtsNbr = 32;                     //·¢ËÍFIFOÐòÁÐÔªËرàºÅ
        FDCAN2_Handler.Init.TxFifoQueueMode = FDCAN_TX_FIFO_OPERATION;    //·¢ËÍFIFOÐòÁÐģʽ
        FDCAN2_Handler.Init.TxElmtSize = FDCAN_DATA_BYTES_8;              //·¢ËÍ´óС:8×Ö½Ú
        if(HAL_FDCAN_Init(&FDCAN2_Handler) != HAL_OK) return 1;           //³õʼ»¯FDCAN2

        HAL_FDCAN_ConfigGlobalFilter(&FDCAN2_Handler, FDCAN_REJECT, FDCAN_REJECT, DISABLE, DISABLE);
        HAL_FDCAN_Start(&FDCAN2_Handler);                               //¿ªÆôFDCAN
        HAL_FDCAN_ActivateNotification(&FDCAN2_Handler,FDCAN_IT_RX_FIFO0_NEW_MESSAGE,FDCAN_INTERRUPT_LINE0);


        FDCAN_FilterTypeDef FDCAN2_RXFilter;

        FDCAN2_RXFilter.IdType=IDType;                                                                                       //±ê×¼ID
        FDCAN2_RXFilter.FilterIndex=Index;                                  //Â˲¨Æ÷Ë÷Òý                  
        FDCAN2_RXFilter.FilterType=FilterType;                                                                   //Â˲¨Æ÷ÀàÐÍ
        FDCAN2_RXFilter.FilterConfig=FDCAN_FILTER_TO_RXFIFO0;                                  //¹ýÂËÆ÷0¹ØÁªµ½FIFO0  
        FDCAN2_RXFilter.FilterID1=ID1;                                                              //32λID
        FDCAN2_RXFilter.FilterID2=ID2;                                                               //Èç¹ûFDCANÅäÖÃΪ´«Í³Ä£Ê½µÄ»°£¬ÕâÀïÊÇ32λÑÚÂë
        if(HAL_FDCAN_ConfigFilter(&FDCAN2_Handler,&FDCAN2_RXFilter)!=HAL_OK)//Â˲¨Æ÷³õʼ»¯       



»Ø¸´

ʹÓõÀ¾ß ¾Ù±¨

1Íò

Ö÷Ìâ

6Íò

»ØÌû

10Íò

»ý·Ö

¹ÜÀíÔ±

Rank: 9Rank: 9Rank: 9

»ý·Ö
106997
QQ
·¢±íÓÚ 2022-1-28 03:21:54 | ÏÔʾȫ²¿Â¥²ã
ËùÒԽṹÌå¾Ö²¿±äÁ¿ÇåÁãÏ£¬±ðµÄÎÊÌâû¿´³öÀ´¡£

²Î¿¼ÏÂÎҵİɣ¬Ã»ÎÊÌâ¡£

»ùÓÚSTM32H7µÄË«CAN FDͨÐÅ°¸Àý£¨2020-10-31£©
https://www.armbbs.cn/forum.php? ... 3449&fromuid=58
(³ö´¦: Ó²ººÇ¶ÈëʽÂÛ̳)
»Ø¸´

ʹÓõÀ¾ß ¾Ù±¨

18

Ö÷Ìâ

321

»ØÌû

375

»ý·Ö

¸ß¼¶»áÔ±

»ý·Ö
375
·¢±íÓÚ 2022-1-28 09:11:07 | ÏÔʾȫ²¿Â¥²ã
¿ÉÒÔ¿´¿´ÕâƪÎÄÕ һÎĶÁ¶®CANFDµÄ½ÓÊÕģʽ
»Ø¸´

ʹÓõÀ¾ß ¾Ù±¨

3

Ö÷Ìâ

1227

»ØÌû

1236

»ý·Ö

ÖÁ×ð»áÔ±

»ý·Ö
1236
·¢±íÓÚ 2022-1-28 18:31:27 | ÏÔʾȫ²¿Â¥²ã
°ïÄãÉú³ÉPDF Ò»ÎĶÁ¶®CANFDµÄ½ÓÊÕÉèÖà 2022-1-28.pdf (3.43 MB, ÏÂÔØ´ÎÊý: 34)
»Ø¸´

ʹÓõÀ¾ß ¾Ù±¨

4

Ö÷Ìâ

19

»ØÌû

31

»ý·Ö

ÐÂÊÖÉÏ·

»ý·Ö
31
 Â¥Ö÷| ·¢±íÓÚ 2022-2-11 16:37:34 | ÏÔʾȫ²¿Â¥²ã
À´¸ú½øÏ£¬¿´Á˼¸ÌìҲûÕÒµ½ÄĵÄÎÊÌ⣬Ŀǰͨ¹ý×Ô¼ºÐ´Á˸ö¹ýÂËËã·¨ÁÙʱ½â¾öÁË
»Ø¸´

ʹÓõÀ¾ß ¾Ù±¨

4

Ö÷Ìâ

19

»ØÌû

31

»ý·Ö

ÐÂÊÖÉÏ·

»ý·Ö
31
 Â¥Ö÷| ·¢±íÓÚ 2022-2-28 14:48:27 | ÏÔʾȫ²¿Â¥²ã
·ÖÏíÏÂÔ­Òò¡£Ô­ÒòÊǹýÂËÆ÷ÔÚ¹«ÓÃRAMÇø¹ýÂË£¬CANFD1ÒѾ­×¢²áÂúÁË128ºÍ64¸ö¹ýÂËÆ÷×飬ËùÒÔCANFD2ÔÙ×¢²á¾ÍÒç³öÁË£¬ÕâÒ²½âÊÍÁËΪʲôÎÒ¿´¿âº¯ÊýÅäÖÃÊÇÕýÈ·µ«ÊÇδÉúЧµÄÔ­Òò¡£Í¬Ê±ÆôÓÃÁ½×éCANFD£¬×¢ÒâÏÂÅäÖÃ×ÜÊý²»³¬¹ý128ºÍ64¾Í¿ÉÒÔÁË¡£
»Ø¸´

ʹÓõÀ¾ß ¾Ù±¨

1Íò

Ö÷Ìâ

6Íò

»ØÌû

10Íò

»ý·Ö

¹ÜÀíÔ±

Rank: 9Rank: 9Rank: 9

»ý·Ö
106997
QQ
·¢±íÓÚ 2022-2-28 14:53:52 | ÏÔʾȫ²¿Â¥²ã
497356044 ·¢±íÓÚ 2022-2-28 14:48
·ÖÏíÏÂÔ­Òò¡£Ô­ÒòÊǹýÂËÆ÷ÔÚ¹«ÓÃRAMÇø¹ýÂË£¬CANFD1ÒѾ­×¢²áÂúÁË128ºÍ64¸ö¹ýÂËÆ÷×飬ËùÒÔCANFD2ÔÙ×¢²á¾ÍÒç³ö ...

лл¥Ö÷¸æÖª×îÖÕÔ­Òò£¬È·ÊµÓ¦¸Ã°ïÂ¥Ö÷¿´Ï´úÂ룬Ôٻظ´Ð§¹û¸üºÃ¡£
Ò»¿´Õâô¶àÅäÖÃÏ¾Í²»Ô¸Ò⻨ʱ¼äÒ»¸öÒ»¸ö²é¿´ÁË¡£
»Ø¸´

ʹÓõÀ¾ß ¾Ù±¨

3

Ö÷Ìâ

1227

»ØÌû

1236

»ý·Ö

ÖÁ×ð»áÔ±

»ý·Ö
1236
·¢±íÓÚ 2022-3-1 17:20:23 | ÏÔʾȫ²¿Â¥²ã
»Ø¸´

ʹÓõÀ¾ß ¾Ù±¨

ÄúÐèÒªµÇ¼ºó²Å¿ÉÒÔ»ØÌû µÇ¼ | Á¢¼´×¢²á

±¾°æ»ý·Ö¹æÔò

QQ|СºÚÎÝ|Archiver|ÊÖ»ú°æ|Ó²ººÇ¶ÈëʽÂÛ̳

GMT+8, 2024-5-14 06:24 , Processed in 0.186586 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

¿ìËٻظ´ ·µ»Ø¶¥²¿ ·µ»ØÁбí