T113-S3 CAN 跑一段时间后,能接收数据但是发送不出数据
-
如题,有人碰到过类似的情况吗
-
@a892755772 你好,我也碰到了这个问题,请问你有定位到是什么原因吗?
-
@pz_zp1
传输逻辑:CAN控制器驱动中对于传输的网络包会进行流量控制,当控制器可以发送时,会阻止新的数据包从网络协议栈进入设备驱动的发送队列,在发送完成后会触发中断,在中断处理函数中唤醒被暂停的发送队列,允许新数据包进入。
问题原因:是在暂停发送队列并传输当前数据包时,出现异常情况导致未生成传输完成中断,因此一直未唤醒被暂停的发送队列。
解决措施:可以增加一些恢复措施如定时器功能,在开始传输时启动定时器,传输完成中断中关闭定时器;定时回调接口中,结合相关寄存器值以及传输队列的状态,来主动唤醒传输队列。
Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号