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