导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页

    T113-S3 CAN 跑一段时间后,能接收数据但是发送不出数据

    Linux
    2
    3
    915
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • A
      a892755772 LV 5 最后由 编辑

      如题,有人碰到过类似的情况吗

      P 1 条回复 最后回复 回复 引用 分享 0
      • P
        Pz_zP1 LV 3 @a892755772 最后由 编辑

        @a892755772 你好,我也碰到了这个问题,请问你有定位到是什么原因吗?

        P 1 条回复 最后回复 回复 引用 分享 0
        • P
          Pz_zP1 LV 3 @Pz_zP1 最后由 编辑

          @pz_zp1
          传输逻辑:CAN控制器驱动中对于传输的网络包会进行流量控制,当控制器可以发送时,会阻止新的数据包从网络协议栈进入设备驱动的发送队列,在发送完成后会触发中断,在中断处理函数中唤醒被暂停的发送队列,允许新数据包进入。
          问题原因:是在暂停发送队列并传输当前数据包时,出现异常情况导致未生成传输完成中断,因此一直未唤醒被暂停的发送队列。
          解决措施:可以增加一些恢复措施如定时器功能,在开始传输时启动定时器,传输完成中断中关闭定时器;定时回调接口中,结合相关寄存器值以及传输队列的状态,来主动唤醒传输队列。

          1 条回复 最后回复 回复 引用 分享 0
          • 1 / 1
          • First post
            Last post

          Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

          行为准则 | 用户协议 | 隐私权政策