关于#单片机#的问题:经调试发现以下问题:Error 报了0x00000200 ,HAL_FDCAN_ERROR_FIFO_FULL

您好,看了你的【FDCAN】STM32G0B1+FDCAN+HAL库调试记录
链接:https://blog.csdn.net/qq_37449342/article/details/119170811?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-119170811-blog-127026990.235^v32^pc_relevant_yljh&spm=1001.2101.3001.4242.1&utm_relevant_index=3

经调试发现以下问题:
Error 报了0x00000200 ,HAL_FDCAN_ERROR_FIFO_FULL

img

img

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这篇博客: STM32H743 FDCAN 发送管理分析(HAL库)中的 2.发送FIFO 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    发送 FIFO 中存储的消息是先 从【获取索引】 TXFQS[TFGI] (某个寄存器标志位)引用的消息开始发送的。每次发送后,获取索引会循环递增,直至发送 FIFO 为空。如下图所示,先发【获取索引】对应的元素。发送 FIFO 可按消息写入发送 FIFO 的顺序发送来自不同发送缓冲区但消息 ID 相同的消息。前面专门发送缓存区,是按照缓冲区编号顺序一个个发,从小发到到,是不管ID的。而发送FIFO发送的时候,是允许把不同缓存区的相同ID的消息发出。
    在这里插入图片描述
    如果要存入新元素,那就存入【放入索引】对应的位置,然后【放入索引】就会递增,指向新的空白位置。如果【放入索引】到达了【获取索引】的位置,那证明发送FIFO已经满了。HAL库是通过下列这条函数存入发送FIFO的。
    加粗样式
    如果有一条消息添加到发送 FIFO,则会通过向与发送 FIFO 【放入索引】引用的发送缓冲区相关的 TXBAR 位写入“1”来请求发送消息。

    如果有多条 (n) 消息添加到发送 FIFO,则会写入以【放入索引】开始的 n 个连续发送缓冲区中。 随后会通过 TXBAR 请求发送。【放入索引】随后会循环递增 n。请求的发送缓冲区数不应超过 发送 FIFO 空闲级别指示的空闲发送缓冲区数。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^