社区
硬件/系统
帖子详情
使用CSerialPort串口编程,如何判断没有收到字符?
brk1985
2012-06-01 11:19:22
有字符收到触发OnCommunication函数,如果没有收到字符,OnCommunication函数收不到字符信息,怎么判断?
希望实现这样的功能:如果在规定的时间范围(比如5分钟)内,没有收到字符,就假定串口断开、重新发送串口连接命令。
PS:貌似串口有设置超时,一点没起到作用。。。
...全文
270
9
打赏
收藏
使用CSerialPort串口编程,如何判断没有收到字符?
有字符收到触发OnCommunication函数,如果没有收到字符,OnCommunication函数收不到字符信息,怎么判断? 希望实现这样的功能:如果在规定的时间范围(比如5分钟)内,没有收到字符,就假定串口断开、重新发送串口连接命令。 PS:貌似串口有设置超时,一点没起到作用。。。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Saleayas
2012-07-11
打赏
举报
回复
设置一个类似看门狗的东西。
它不停的计时,到指定的时候,就认为串口断开。
而当接受到任何一个数据的时候,就把它的计数器置0,这就是通常所说的喂狗。
FrankieWang008
2012-07-11
打赏
举报
回复
自己手写一个Ontimer事件处理函数,来处理超时处理吧
brk1985
2012-07-11
打赏
举报
回复
[Quote=引用 4 楼 的回复:]
可以这么用:
当发送数据后,用
DWORD dwEnd = ::GetTickCount() ;
得到当前时间,ms级
然后实时判断是否超时即可。
1、用For/While判断
2、在OnTimer()里比较发送时时间
[/Quote]
还以为没人回复了!!!
我后来使用定时器完成了该功能,用定时器设置间隔时间、比如5s,设置一个接收标志位,如果定时器执行的时候仍为“未收到”状态,则判断串口未连接(无收到字符)。
和你所讲的还是有所区别。。。你的思路还是让人觉得有点模糊。。。
fronz
2012-07-07
打赏
举报
回复
不知道你说的串口类的组成,一般来说是没有超时事件触发的,自己设置读超时和读间隔超时事件,改大到5分钟。
elautoctrl
2012-07-05
打赏
举报
回复
用状态机+定时器应该可以解决吧
我就是这么做的
tomyi
2012-07-05
打赏
举报
回复
可以这么用:
当发送数据后,用
DWORD dwEnd = ::GetTickCount() ;
得到当前时间,ms级
然后实时判断是否超时即可。
1、用For/While判断
2、在OnTimer()里比较发送时时间
一条晚起的虫
2012-06-26
打赏
举报
回复
PS:貌似串口有设置超时,一点没起到作用。。。
// 串口超时设置肯定有作用的。
// CSerialPort是用Comm Event出发的,看看Comm Event注册了哪几个?超时的标志注册了没?
brk1985
2012-06-01
打赏
举报
回复
期待高手的出现啊。。。
brk1985
2012-06-01
打赏
举报
回复
继续求助中。。。
基于VC++2008用
CSe
ria
l
Port
类编写的
串口
程序
在ONCOMM函数除了界面EDIT接收框外我还加了点自己测试把
收到
16进制接收数据转化为BYTE程序,发送数据默认是16进制的,如果要ACSII就要自己修改发送数据部分不调用转换格式就行了。STR2HEX编译时会提示警示会丢失数据...
基于
CSe
ria
l
Port
修改类的
串口
调试助手源代码
本
串口
工具集成目前多数
串口
工具的优秀功能于一身,采用
CSe
ria
l
Port
类进行编写,并在此基础上对该类进行了改进。本工具免费试用,永不过期。并且本着奉献的精神,公开本
串口
工具的源代码,希望广大用户反馈意见或...
CSe
ria
l类在vs2015中开发的简单
串口
通信程序
该例程在VS2015开发环境中,
使用
CSe
ria
l类,实现了
串口
通信。可发送和接收
字符
串,设置
串口
常见属性,并支持在此基础上改写。
Visual C++_Turbo C
串口
通信
编程
实践.(电子工业.龚建伟.熊光明) 第二版 电子版
第2章 多线程
串口
编程
工具
CSe
ria
l
Port
类 16 2.1
CSe
ria
l
Port
类的功能及成员函数介绍 16 2.2 应用
CSe
ria
l
Port
类编制基于对话框的应用程序 30 2.3 应用
CSe
ria
l
Port
类编制基于单文档的应用程序 35 2.4 对
CSe
ria
l
Port
...
visual C++_Turbo C
串口
通信
编程
实践
3.2.3 如何发送接收ASCII值为0和大于128的
字符
? 3.2.4 在同一程序中用MSComm控件控制多个
串口
的具体操作方法 3.2.5解决
使用
控件
编程
时程序占用的内存会不断增大的问题 3.2.6在
没有
安装Visual Studio的计算机上...
硬件/系统
2,640
社区成员
17,239
社区内容
发帖
与我相关
我的任务
硬件/系统
VC/MFC 硬件/系统
复制链接
扫一扫
分享
社区描述
VC/MFC 硬件/系统
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章