作者:火山哥哥5237 | 来源:互联网 | 2023-05-18 06:03
大家好!最近在wince操作系统上写了个串口接收函数,拷机时发现程序运行2个小时左右就会死机很准的。串口助手设置的波特率是115200,每次发送512字节,发送间隔为50ms,也就是每秒能发送出1k字
大家好!最近在wince操作系统上写了个串口接收函数,拷机时发现程序运行2个小时左右就会死机很准的。串口助手设置的波特率是115200,每次发送512字节,发送间隔为50ms,也就是每秒能发送出1k字节的数据,而我这边收到大概70M左右的字节也就是2小时左右就死机了。望大家帮忙分析下问题可能的原因?串口接受中什么情况下会出现这种问题呢?谢谢大家了
9 个解决方案
1. 每次发送后清理缓冲区
2. 波特率设置低一些 9600
3. 接受的区域定时情况,转存到磁盘或其他位置。
呵呵,试试看吧,我也吃不准。
还要确定是不是硬件的问题,
会不会过热引起的
内存是不是足够,还是有内存泄漏
抛开硬件来说,不出意外的话就是‘内存泄漏’引起的了!
大家说的很有道理,因为代码运行在wince下,所以调试很麻烦,我就怀疑哪个地方有问题就更改哪个地方,在往文件中写数据的函数中,更改了一下文件关闭的地方,结果就好了。有的文件没有关闭就另新建了文件,估计就造成了内存泄露,
// 一般不会是硬件的问题,
// 在排除内容泄露和资源泄漏的前提下,才考虑是否硬件问题。
你的死机是只程序不动了没反应,还试出现异常了,如果出现异常,说明你有内存泄露和空指针情况出现,还有就是你接收程序段的处理上有问题,你的数据率是10k/S,不是1K
NT下需要进行异步读取,同步读取的判断。可以参考ddk mouser例子,ce下怎么样就不晓得了。