twodiamond 发表于 2024-2-4 16:21:41

H743中FDCAN例程的发送缓冲和FIFO设置

Eric,硬汉新年好!
请教:在FDCAN例程中,对于 FDCAN1 和 FDCAN2 的发送配置都一样的:


        hfdcan1.Init.TxEventsNbr = 16;                                                        /* 设置Tx Event FIFO中元素个数,范围0-32 */       
        hfdcan1.Init.TxBuffersNbr = 8;                                                        /* 设置Tx Buffer中元素个数,范围0-32 */
        hfdcan1.Init.TxFifoQueueElmtsNbr = 8;                   /* 设置用于Tx FIFO/Queue的Tx Buffers个数。范围0到32 */
        hfdcan1.Init.TxFifoQueueMode = FDCAN_TX_FIFO_OPERATION; /* 设置FIFO模式或者QUEUE队列模式 */
        hfdcan1.Init.TxElmtSize = FDCAN_DATA_BYTES_8;         /* 设置Tx Element中的数据域大小,支持8,12,16,20,24,32,48或者64字节 */



        hfdcan2.Init.TxEventsNbr = 16;                                                        /* 设置Tx Event FIFO中元素个数,范围0-32 */       
        hfdcan2.Init.TxBuffersNbr = 8;                                                        /* 设置Tx Buffer中元素个数,范围0-32 */
        hfdcan2.Init.TxFifoQueueElmtsNbr = 8;                   /* 设置用于Tx FIFO/Queue的Tx Buffers个数。范围0到32 */
        hfdcan2.Init.TxFifoQueueMode = FDCAN_TX_FIFO_OPERATION; /* 设置FIFO模式或者QUEUE队列模式 */
        hfdcan2.Init.TxElmtSize = FDCAN_DATA_BYTES_8;         /* 设置Tx Element中的数据域大小,支持8,12,16,20,24,32,48或者64字节 */


有几个问题没弄清楚:
1、Tx 事件FIFO 一共有32个,Tx 缓冲区总共也是32个,当模式设置成 FDCAN_TX_FIFO_OPERATION 时,Tx 发送是选择 FIFO呢,还是缓冲区?
2、如例程, 发送事件数量都为8时,FDCAN1 和 FDCAN2是共享使用 FIFO0~FIFO7,还是FDCAN1使用FIFO0~FIFO7,FDCAN2使用FIFO8~FIFO15呢?
3、Tx 事件FIFO 和 Tx缓冲区有什么区别呢?

谢谢!

eric2013 发表于 2024-2-5 08:39:27

学习下这期视频教程,讲解比较清楚,还有问题的话,我们再交流。

BSP视频教程第26期:CAN/CANFD/CANopen专题,CANFD整个运行机制精讲,图文并茂,配合综合实战演练(2023-05-15)
https://www.armbbs.cn/forum.php?mod=viewthread&tid=119189


twodiamond 发表于 2024-2-5 16:33:19

eric2013 发表于 2024-2-5 08:39
学习下这期视频教程,讲解比较清楚,还有问题的话,我们再交流。

BSP视频教程第26期:CAN/CANFD/CANopen ...

感谢硬汉:handshake
页: [1]
查看完整版本: H743中FDCAN例程的发送缓冲和FIFO设置