跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
折叠
品牌标识

YunTu Forum

YTMicro.com
  1. 主页
  2. Discussion & Question
  3. YTM32B1L系列
  4. CAN FIFO仅能处理1帧的问题

CAN FIFO仅能处理1帧的问题

已定时 已固定 已锁定 已移动 未解决 YTM32B1L系列
1 帖子 1 发布者 20 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • silas0802S 离线
    silas0802S 离线
    silas0802
    编写于 最后由 编辑
    #1

    在使用 Legacy Rx FIFO 接收 CAN 消息时,我们分析了驱动中的中断处理代码,发现以下流程:中断服务程序中调用 FLEXCAN_IRQHandlerRxFIFO。

    该函数读取 FIFO 中的一帧数据后,调用 FLEXCAN_CompleteRxMessageFifoData。
    在 FLEXCAN_CompleteRxMessageFifoData 中,当 transferType == FLEXCAN_RXFIFO_USING_INTERRUPTS 时,会执行:
    (void)FLEXCAN_SetMsgBuffIntCmd(base, FEATURE_CAN_RXFIFO_FRAME_AVAILABLE, false);
    (void)FLEXCAN_SetMsgBuffIntCmd(base, FEATURE_CAN_RXFIFO_WARNING, false);
    (void)FLEXCAN_SetMsgBuffIntCmd(base, FEATURE_CAN_RXFIFO_OVERFLOW, false);
    即禁用了所有 FIFO 相关的中断(包括帧可用中断 BUF5I)。

    疑问:
    如果 FIFO 中同时收到多帧(例如连续 4 帧),处理完第一帧后中断被禁用,那么剩余的帧是否还能触发中断并被读取?还是会造成丢帧?
    按当前代码逻辑,是否意味着 Legacy Rx FIFO 只能支持单帧接收,而不能连续接收多帧?
    如果需要连续接收多帧,应该采用什么配置或修改?

    1 条回复 最后回复
    0

  • 云途开发生态介绍

    快速上手云途开发生态

  • 云途论坛规则/Yuntu Forum Rules

    发帖前请查看

  • YT CONFIG TOOL调查问卷

    帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...

  • can
    24
    demo
    21
    lin stack
    13
    uds
    13
    md14
    6
    fbl
    5
    yt-link
    5
    adc模块
    4
    Online Users
    • 登录

    • 登录或注册以进行搜索。
    • 第一个帖子
      最后一个帖子
    0
    • 版块
    • 最新
    • 标签
    • 热门