社区
Windows SDK/API
帖子详情
用MSCOMM 串口通信怎样避免通信错误时导致电脑死机?
fanchael
2010-02-26 01:54:21
我现在用MSCOMM 串口通信,电脑通信连接多块温度板卡,当温度板卡的数量比较多的时候,发觉用MSCOMM做通信,经常会导致电脑死机10秒针左右(鼠标可以移动,但是点击没有反应,同时键盘也失灵),然后又会恢复正常,请问高手这个问题的原因和解决方案。
...全文
276
8
打赏
收藏
用MSCOMM 串口通信怎样避免通信错误时导致电脑死机?
我现在用MSCOMM 串口通信,电脑通信连接多块温度板卡,当温度板卡的数量比较多的时候,发觉用MSCOMM做通信,经常会导致电脑死机10秒针左右(鼠标可以移动,但是点击没有反应,同时键盘也失灵),然后又会恢复正常,请问高手这个问题的原因和解决方案。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
贝隆
2010-03-01
打赏
举报
回复
楼主看看出现问题时CPU的利用率是多少,如果此时CPU的利用率很高(比如100%)那表明你的代码有问题或通信存在干扰。
楼主最好先用串口调试器调试一下通信。
lyguo
2010-03-01
打赏
举报
回复
不要在主程序中sleep或者其他等待函数
如果你的控制板是主动发送信息给PC,那么你可以用spcomm试试看,每个串口独立接收数据处理。
楼上正解。
要用多线程,
IDWB
2010-02-28
打赏
举报
回复
如果你是用多个串口,而每个串口连接一个控制板那么不必采用轮询方法,每个串口可以独立工作,如果一个串口连接多个控制板,而每个控制板都有一个不同的设备地址,那么你可以使用轮询方法。如果让程序不死可以让所有操作在线程中完成,也就是不要在主程序中sleep或者其他等待函数
如果你的控制板是主动发送信息给PC,那么你可以用spcomm试试看,每个串口独立接收数据处理。
fanchael
2010-02-27
打赏
举报
回复
正像高人IDWB所说的轮询等待结果,这个问题应该怎样在逻辑上去避免发生这样的错误呢? 迷茫中!
fanchael
2010-02-27
打赏
举报
回复
谢谢各位高人指点!
我设计是每个串口配置一个MSCOMM的。我是大概每2秒针一个周期对6个温度模块进行循环检测,接收信号方式我利用过OnComm来触发接收,也用过延迟等待200ms再去读取MSComm2.Input,但是两种方式都会出现:电脑死机10秒针左右(鼠标可以移动,但是点击没有反应,同时键盘也失灵),然后又会恢复正常的现象。
dd_zhouqian
2010-02-26
打赏
举报
回复
楼主是不是没用线程处理?
IDWB
2010-02-26
打赏
举报
回复
初看是因为你可能用了轮询等待结果,当其中一个或者几个设备没有返回信息,那么程序始终在waitfortimeout,应该是程序逻辑上有问题
「已注销」
2010-02-26
打赏
举报
回复
是一个MSCOMM控制多个串口,还是怎么做的啊?还是每个串口配置一个MSCOMM啊
关于
串口
通信
导致
系统
死机
问题的一些思考
今天早上因为前两天遇到的
串口
通信
导致
系统
死机
的问题,我在相应的版块发了一个帖子求助,首先谢谢那些踊跃回答我的问题的朋友,谢谢你们的帮助; 通过和同学的讨论,发现自己仍然无法摆脱犯低级
错误
的困境,一个简单的东西,总容易被我弄的复杂,并且不善于思考,总是解决不了类似的问题; 串口
MS
Com
m控件过程中内存溢出和GetOneDimSize出错的问题
MS
Com
m控件过程中内存溢出和GetOneDimSize出错的问题 现在做的一个项目需要实现上位机和单片机的
串口
通信
,为了方便,使用了MS
Com
m控 件,但写程序
时
在处理接收数据遇到了问题,程序可以编译通过,但运行的过程中,程序只要接收到串口发来的数据,就会弹出内存溢出提示
错误
:in xx.exe(MFCO42D.DLL);0xC0000005,Acess Violation。处理接收数据部分...
php
串口
通信
编程问题
最近做个小项目,要远程控制一个水泵,编程只会一点儿php,正好方便远程控制。 开发环境 win7 ,一个usb转串口的转换器,淘宝上买的串口4路继电器板。 想最终整个atom的小板子加个u盘做系统,定制一个小linux+apache+php系统来做,硬件体积小,功耗低,应该可靠性比较高。 google了一下,看到大多都是用的php dio模块,我也用吧。 原来开发开发环境用的是 wamp server 2.1, 发现没有pecl dio模块,又google,发现 pecl4win.php.net当机了,郁闷
在WIN32中的串口通讯(Delphi)
在WIN32中的串口通讯(Delphi) 由在WIN32操作系统中禁止应用程序象DOS中那样直接访问计算机硬件,因此,无法象以前那样采用中断读写串口。但是在WIN32中我们可发采用两种方法访问串口:1、使用VB中的MS
COM
M串口控件;2、采用API函数,本文主要介绍采用API函数实现串口通讯。 由于WM_
COM
MNOTIFY消息已被取消,故本文自定义了WM_
COM
MNOTIFY
MFC—
通信
端口编程
通信
端口编程 计算机中,主机与外接设备间的传输数据有两种方式:一种是通过串口进行
通信
,一种是通过并口进行
通信
。 一、串行端口
通信
编程 在工业程序中,经常会遇到需要与串行端口进行
通信
的情况。 ...
Windows SDK/API
1,183
社区成员
22,335
社区内容
发帖
与我相关
我的任务
Windows SDK/API
Delphi Windows SDK/API
复制链接
扫一扫
分享
社区描述
Delphi Windows SDK/API
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章