基于CSerialPort修改类的串口调试助手源代码(支持中文、自动保存等)

转自:  http://blog.csdn.net/itas109/article/details/51337538 【最新修正版2016-05-07】

http://blog.csdn.net/itas109/article/details/18359295、http://blog.csdn.net/itas109/article/details/18358297

如需转载请标明出处:http://blog.csdn.net/itas109 

QQ技术交流群:129518033

 

 

本串口工具集成目前多数串口工具的优秀功能于一身,采用CSerialPort类进行编写,并在此基础上对该类进行了改进。本工具免费试用,永不过期。并且本着奉献的精神,公开本串口工具的源代码,希望广大用户反馈意见或建议。

可执行程序地址:http://pan.baidu.com/s/18F4Rk
源码地址:http://download.csdn.net/detail/itas109/6855347

代码托管:code.csdn.net/itas109/serialport_itas109

博客地址:blog.csdn.net/itas109
Email:itas109@qq.com

本软件主要在XP系统做测试使用。
本工具的主要功能有:
1.接收从串口进来的数据并在窗口显示.
2.所接收到的数据数据显示方式可以选择为字符方式或者HEX方式
3.支持显示中文
4.串口波特率可以选择为300bps-115200bps.
5.可以即时刷新存在的串口号.如果您增加了usb转串口等设备,点击刷新串口按钮后,新的串口号也会在列表中出现.
6.支持最多20个串口列表,包括COM1-COM256中的任意20个活跃串口
7.可以选择“5、6、7、8”四种数据长度.
8.可以选择为“1、2”两种停止位.
9.数据可以选择为“无、奇校验、偶校验、1、0”四种方式.
10.串口设置和字符串操作等设置在程序关闭时自动保存,打开时自动载入.您可以自行设置是否自动保存.
11.可以在字符串输入框输入您想发送的字符串,并发送.
12.可以在字符串输入框输入您想发送的HEX数据串,数据的值从00到FF,没有任何限制.
13.可以定时重复发送数据,并可以设置发送时间间隔.
14.可以在发送字符串时选择发送新行,即自动加上回车换行.
15.可以即时显示发送的字节数和接收到的字节数,按清除窗口将会清零.
16、可以设置自动清空功能,在达到50行数据时,自动清空。未设置时,达到100行,自动清空.
17、在手动发送旁边的按钮可以设置按ENTER发送数据.

另外要说明的是,由于本人编程能力有效,未免可能有些差错,在此先声明一下,您可以免费使用和自由传播本软件,但是我不对本软件所造成的任何损失负责!如果你使用了本软件,即表明您愿意接收这一条款。如果你不能接受,请立即将其删除!


如需转载请标明出处:http://blog.csdn.net/itas109 

QQ技术交流群:129518033

注意:CSerialPort串口类的修正版2014-01-10 (http://blog.csdn.net/itas109/article/details/18358297)

  1. ************************************************************************************ 
  2. **  author: mrlong date:2007-12-25 
  3. ** 
  4. **  改进 
  5. **    1) 增加ClosePort 
  6. **    2) 增加 writetoProt() 两个方法 
  7. **    3) 增加 SendData 与 RecvData 方法 
  8. **  
  9. ************************************************************************************ 
  10. **  author:liquanhai date:2011-11-04  
  11. **  改进  
  12. **    1)增加 ClosePort中交出控制权,防止死锁问题  
  13. **    2) 增加 ReceiveChar中防止线程死锁  
  14. ***************************************************************************************  
  15. **  author: itas109  date:2014-01-10 
  16. **  Blog:blog.csdn.net/itas109 
  17. ** 
  18. **  改进 
  19. **    1) 解决COM10以上端口无法显示的问题 
  20. **    2) 扩展可选择端口,最大值MaxSerialPortNum可以自定义 
  21. **    3) 添加QueryKey()和Hkey2ComboBox两个方法,用于自动查询当前有效的串口号。 
  22. **  
  23. */  

这是一份优秀的类文件,好多的地方值得我们学习,具体在多线程,事件,自定义消息,类的封装方面等等。
Remon提供的串口类网址为: http://codeguru.earthweb.com/network/serialport.shtml

 

其他贡献者:http://blog.csdn.net/liquanhai/article/details/6941574

代码下载:http://download.csdn.net/detail/itas109/6855323

代码托管:https://code.csdn.net/itas109/cserialport


(注意:)

1、源码运行时可能会出现问题:The variable 'comstat' is being used without being initialized (解决方案:http://blog.csdn.net/stephen1315/article/details/7457294)

2、程序运行时  跟硬件交互时,貌似只能够“一发一收”!(虚拟串口下没有什么问题!)(原作者解决方案http://blog.csdn.net/itas109/article/details/51337538太感谢了!

最新更新:

2016-05-07补充说明:

CSerialPort类地址:https://github.com/itas109/CSerialPort

CSDN下载:http://download.csdn.net/detail/itas109/9512828

 

更新内容:

  • 修复每次打开串口发送一次,当串口无应答时,需要关闭再打开或者接收完数据才能发送的问题。 解决办法:在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)增加默认情况,增强程序健壮性



本人结合上述blog跟http://download.csdn.net/detail/minuby/3035400#comment、https://github.com/liquanhai/CSerialPort;修改为VS2013版本;

源码地址:http://download.csdn.net/detail/scliu12345/9529214


  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值