社区
硬件/系统
帖子详情
求教:谁对Remon Spekreijse 写的CserialPort类比较熟悉的……
microwenyan
2003-09-16 01:52:44
这个类是用怎样的机制来关闭一个端口,偶没找到关闭端口的函数,想自己写一个
...全文
65
4
打赏
收藏
求教:谁对Remon Spekreijse 写的CserialPort类比较熟悉的……
这个类是用怎样的机制来关闭一个端口,偶没找到关闭端口的函数,想自己写一个
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
mikeyangoo
2003-09-19
打赏
举报
回复
它是在线程中等待关闭端口消息的!
看一下这个线程函数吧!CommThread(LPVOID pParam);
随后再CloseHandle(port->m_hComm);!
唐勉的技术博客
2003-09-18
打赏
举报
回复
BOOL bSuccess = CloseHandle(m_hComm);
m_hComm = INVALID_HANDLE_VALUE;
if (!bSuccess)
TRACE(_T("Failed to close up the comms port, GetLastError:%d\n"), GetLastError());
m_bOverlapped = FALSE;
papaya_stone
2003-09-18
打赏
举报
回复
m_hComm = CreateFile(szPort,
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
FILE_FLAG_OVERLAPPED, 0);
CloseHandle(m_hComm);
AthlonxpX86
2003-09-18
打赏
举报
回复
CloseHandle(m_hComm);
串口通讯
类
CSe
ria
l
Port
的BUG修正和简化版
Re
mon
Spek
re
ijse
写
的
CSe
ria
l
Port
类
,在串口通讯领域广为使用,深深崇拜的同时,然在使用中发现一些问题,特此对大神
写
的
CSe
i
ria
l
Port
类
予以简化和BUG修正。修改
类
CMySe
ria
l
Port
实现文件的注释中,有详细的BUG修正说明。如大家在使用中发现有其他问题,希望在评论中不吝告知,谢谢!
CSe
ria
l
Port
串口
类
最新修正版2016-08-02
CSe
ria
l
Port
First Version by Re
mon
Spek
re
ijse
on 2000-02-08 http://www.codeguru.com/cpp/i-n/network/se
ria
lcommunications/article.php/c2483/A-communication-class-for-se
ria
l-
port
.htm Second Version by mrlong on 2007-12-25 https://code.google.com/p/mycom/ 增加 Close
Port
增加 WriteTo
Port
两个方法 增加 SendData 与 RecvData 方法 by liquanhai on 2011-11-04 http://blog.csdn.net/liquanhai/article/details/4955253 增加 Close
Port
中交出控制权,防止死锁问题 by liquanhai on 2011-11-06 http://blog.csdn.net/liquanhai/article/details/6941574 增加 ReceiveChar 中防止线程死锁 by viruscamp on 2013-12-04 https://github.com/viruscamp/
CSe
ria
l
Port
增加 IsOpen 判断是否打开 修正 Init
Port
中 parity Odd Even 参数取值错误 修改 Init
Port
中
port
nr 取值范围,
port
nr>9 时特殊处理 取消对 MFC 的依赖,使用 HWND 替代 CWnd,使用 win32 thread 函数而不是 MFC 的 增加用户消息编号自定义,方法来自 CnComm by itas109 on 2014-01-10 http://blog.csdn.net/itas109/article/details/18358297 解决COM10以上端口无法显示的问题 扩展可选择端口,最大值MaxSe
ria
l
Port
Num可以自定义 添加QueryKey()和Hkey2ComboBox两个方法,用于自动查询当前有效的串口号。 by liquanhai on 2014-12-18 增加一些处理措施,主要是对减少CPU占用率 by itas109 on 2016-05-07 http://blog.csdn.net/itas109 修复每次打开串口发送一次,当串口无应答时,需要关闭再打开或者接收完数据才能发送的问题。 解决办法:在m_hEventArray中调整m_hWriteEvent的优先级高于读的优先级。CommThread(LPVOID pParam)函数中读
写
的位置也调换。 参考:http://zhidao.baidu.com/link?url=RSrbPcfTZRULFFd2ziHZPBwnoXv1iCSu_Nmycb_yEw1mklT8gkoNZAkWpl3UDhk8L35DtRPo5VV5kEGpOx-Gea 修复停止位在头文件中定义成1导致SetCommState报错的问题,应为1对应的停止位是1.5。UINT stopsbits = ONESTOPBIT switch(stopbits)和switch(parity)增加默认情况,增强程序健壮性 by itas109 on 2016-06-22 http://blog.csdn.net/itas109 增加ReceiveStr方法,用于接收字符串(接收缓冲区有多少字符就接收多少字符)。 解决ReceiveChar只能接收单个字符的问题。 by itas109 on 2016-06-29 http://blog.csdn.net/itas109 解决Restart
Mon
itoring方法和Stop
Mon
itoring方法命令不准确引起的歧义,根据实际作用。 将Restart
Mon
itoring更改为Resume
Mon
itoring,将Stop
Mon
itoring更改为Suspend
Mon
itoring。 增加IsThreadSuspend方法,用于判断线程是否挂起。 改进Close
Port
方法,增加线程挂起判断,解决由于线程挂起导致串口关闭死锁的问题。 增加IsReceiveString宏定义,用于接收时采用单字节接收还是多字节接收 by itas109 on 2016-08-02 http://blog.csdn.net/itas109 https://github.com/itas109 改进IsOpen方法,m_hComm增加INVALID_HANDLE_VALUE的情况,因为CreateFile
解决了关闭串口时死锁的
CSe
ria
l
Port
类
该文章转载自:http://blog.csdn.NET/itas109 与2016-12-20日在其基础上修改了其中关串口卡死现象,添加十六进制与ASCII之间互转函数,觉得蛮好用的推荐给大家 如需转载请标明原始出处:http://blog.csdn.NET/itas109 QQ技术交流群:129518033 这是一份优秀的
类
文件,好多的地方值得我们学习,具体在多线程,事件,自定义消息,
类
的封装方面等等。 Re
mon
提供的串口
类
网址为: http://codeguru.earthweb.com/network/se
ria
l
port
.shtml, 其他贡献者:http://blog.csdn.net/liquanhai/article/details/6941574 代码下载:http://download.csdn.net/detail/itas109/6855323 代码托管:https://code.csdn.net/itas109/
cse
ria
l
port
该串口
类
是用一个很好的串口
类
,希望对需要的人有所帮助
CSe
ria
l
Port
(mrlong补充过的)
类
Re
mon
Spek
re
ijse
的
CSe
ria
l
Port
类
为基础,mrlong增加了Close
Port
,writetoProt()方法,支持字节发送
CSe
ria
l
Port
:Re
mon
Spek
re
ijse
的串行端口
类
的最新修改版
CSe
ria
l
Port
a lightweight library of se
ria
l
port
, which can easy to read and write serical
port
on windows with C++ 2021-01-13 the typical demo to use this class: First Version by Re
mon
Spek
re
ijse
on 2000-02-08 Second Version by mrlong on 2007-12-25 增加 Close
Port
增加 WriteTo
Port
两个方法 增加 SendData 与 RecvData 方法 by liquanhai on 2011-11-04 增加 Close
Port
中交出控制权,防止死锁问题 by liquanhai on 2011-11-06 增加 Receive
硬件/系统
2,643
社区成员
17,229
社区内容
发帖
与我相关
我的任务
硬件/系统
VC/MFC 硬件/系统
复制链接
扫一扫
分享
社区描述
VC/MFC 硬件/系统
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章