怎样用wince的串口类不断循环的发送一组数据

开发老菜鸟 2013-09-29 06:34:32
我刚学会了用wince的串口类向串口中发送数据。
可是我现在想从串口中不断循环的发送一段报文,应该用什么方法呢。
我现在用的方法是在初始化时开启一个线程,在线程中死循环发送数据,结果不出两分钟,程序报内存严重不足。
看了网上讲到的内存泄漏问题,限于水平,实在不会,更不敢从串口类中找原因。而且,我是在一个很简单的测试程序中完成的。

还有一个原因是,如果我开启一个定时器,在定时器里发送这段报文,程序运行很长时间都没有问题。但是我想问问用这种办法怎样考虑每个定时器是否能发完数,定时器如果开的快,肯定是有数据没发完,再进定时器该怎么发数呢?

我想请高手帮忙解释一下在定时器里发送数据的方法可行吗。
还有用线程的方法为什么会造成内存不足。我还是感觉这种方法可靠一些。
...全文
210 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
z_jzhao 2014-03-05
  • 打赏
  • 举报
回复
有用VB开发的吗
我的波塞冬 2013-10-03
  • 打赏
  • 举报
回复
不错,今天学到新东西了
  • 打赏
  • 举报
回复
引用 4 楼 sxhpudn 的回复:
我发一段报文要2,3秒的时间,可我定时器开的500毫秒,这倒不会造成内存溢出吗
你的问题要考虑你的串口类怎么处理了。比如你的发送接口是阻塞的方式,那么定时器肯定超时,相当于后面几次不会触发。如果不是,那么也要看你的类怎么处理。
开发老菜鸟 2013-09-30
  • 打赏
  • 举报
回复
代码其实很简单了,我做的程序本身就不复杂,从一开始学起的,每步都有记录,一个线程里死循环,往串口中发数,就是用的wince串口类,在汪兵的那本书中有讲,他的例程不能用,需要改几个设置。 感谢版主指出定时器可用,我并没有完全了解那个串口类,我有些担心,我发一段报文要2,3秒的时间,可我定时器开的500毫秒,这倒不会造成内存溢出吗
wohuazhen 2013-09-30
  • 打赏
  • 举报
回复
在线程中死循环发送数据,结果不出两分钟,程序报内存严重不足 我发一段报文要2,3秒的时间 ------------------------------------------ 楼主有多线程的概念吗?有线程同步的概念吗? 如果你的一段报文要发送2,3秒时间,波特率假设11 520 0,那么就是要发几十k的数据,有这么多吗? 你在打开串口的时候,设置的发送接收的buffer是多大的呢? 你往里面写一次又是多大的数据呢? writefile这个函数,你的了解是多少呢? 你的线程循环是如何控制的呢? 你的报文是如何产生的呢? 内存是如何分配的呢?需要释放吗?还是反复使用? 指针的概念? ----------------------------------------------------- 我觉得,你首先要看懂人家的串口类,是个什么行为。 然后要能够把这个类去掉,重新组合成几个函数,明白先后调用关系。 这样也能跑起来。开始做些简单的发送接收。 串口是可以回还的。你发送什么出去,回来什么。 最后人家的类还是你的改进版,还是不用类,这个不重要。 ------------------------------------------------- 不支持在线调试,就要会用log的方法。 看板子是否有调试串。 或者尝试printf看,会不会在ce界面上出现打印出来的东西。 -------------------------------------------------------- 可以把你的代码,部分伪代码,部分怀疑问题的地方贴出来。 不然人家说的,你也不一定看懂。
一介布衣萧萧 2013-09-29
  • 打赏
  • 举报
回复
把相关代码贴出来瞧瞧
91program 2013-09-29
  • 打赏
  • 举报
回复
在定时器中实现完全可以。
91program 2013-09-29
  • 打赏
  • 举报
回复
用线程的方法为什么会造成内存不足,需要看代码分析。

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧