si26
si26
This guy hasn't written anything yet

注册于 2 years ago

回答
1
文章
0
关注者
0

@ZYQ 感谢您的回答! 只是您的回答对我来说没有任何帮助. 我大概也知道应该是代码的问题, 或者说应该是对这个 U 使用过程中规避一些坑的用法不熟悉; 我如果贴代码, 只知道是串口部分的, 具体贴哪段, 如果知道了就不用在这里寻求帮助了. 所以, 现在反馈的是测试过程和现象; 如果您理解不了, 还请原谅, 个人表达能力有限.
值得庆幸的是, 这个问题目前在群友 4061N 的帮助下已经解决! 在次表示感谢!
下面我们说一下这个研究这个问题的原因,
我的串口部分程序是基于原厂固件库修改而来的, 因原厂固件库有很多 bug, 0. 6. 0 版本中断发送方式是不能正常工作的, 此处改了两个地方, 还有接收完后对指针进行减操作, 在频繁大批量传输时很不安全且会数据错乱!
在校正了这些问题后, 串口操作时仍然会偶尔死机的情况... 由此特做了以上的测试!
官方固件对处理中断的操作是先清中断标识, 然后读取 FIFO, 会出现以上测试的情况; 群友 4061N 的分析, 是清过中断后, 由于 FIFO 中还存在数据, 二次触发了中断!
最终, 在读取完 FIFO 后再清一次中断, 即可解决双倍中断的情况!
希望各位在使用串口的时候特别注意!
至于我在项目中出现的死机情况是否跟此有关, 后续会做进一步测试, 到时再告知大家, 谢谢!
再次感谢群友 4061N 的帮助!

发布
问题