原创文章欢迎转载。转载请注奣:转载自
最近要写一个串口程序用MFC自带COM组件的效果很差(一次接收一个缓冲区的数据,没办法像写嵌入式程序那样单字节就能触发中断接收那样)所以进行了一些研究,发现了一个 第三方串口类 很强大效果非常好。
第三方串口类资源下载:
建立一个基于对话框的MFC应用程序我在这里是 SerialPortTest
,画的界面如下:
在对对话框的 “打开串口” 的 CButton
控件添加 单击消息处理函数 在里面实現打开和关闭串口的功能
至于串口的发送可以调用 CSerialPort
类 中的类成员函數:
使用这个串口类会遇到这个问题
下面是我搜集到的解决方法,屡试不爽(基本用 方案1)
‘Default’在中文版中是:项目-〉属性-〉配置属性-〉C/C++代码生成-〉基本运行时检查-〉设置为默认,当将基本运行时检查改为默认之后编译自然顺利通过了,向串口调试助手发送消息正常了再从串口调试助手向SerialPortTest发送消息时,也正常了
另一种解决方案是将CSerialPort.CPP中的COMSTAT comstat;改为static COMSTAT comstat;这样改了之后,debug顺利通过然后调试,與串口调试助手相互发消息都OK了为什么这样就能解决呢?其实当你使用debug解决方案时它的基本运行时检查初始设置为:两者(/RTC1,等同于 comstat;編译都不能通过,报错““cl.exe”返回的结果有误”,这个应该是属于Release的问题了另当别论了。