si26
si26
这家伙很懒,什么也没写!

注册于 1年前

回答
1
文章
0
关注者
0

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

发布
问题