VC++ MFC MSCOMM VS2010 手把手学会串口收发 含例程

来源:互联网 发布:拼音练字软件手机软件 编辑:程序博客网 时间:2024/05/07 17:53

    老习惯,例程链接放在评论一楼。

    大部分情况下(毕设,实验室常用设备或传感器的上位机编程,工厂打码机/喷码机上位机编程,自己学习做串口助手的demo,等等90%情况),用到的都是占用一个端口的异步通讯。而这类工作用MSCOMM控件可以很方便的实现,并且在VS下面可以自己做一些定制的工作。

    而不少做这类工程的,都不是计算机科班,所以有一份好的教程和跑得通,并且逻辑清楚的完整源码,可以节约大把的时间。

    以下基于学习网上的一份比较详细,但是没有源码的教程,的学习练手之作,原文的代码有些错漏之处,不同版本的VS用法也有区别,也一并补齐,希望能方便初学者更快的入门。

    源码中有把该份教程一起打包,所以基本操作在正文中不再赘述,只是把流程理一理。

    基本流程是,1)新建工程(对话框);2)添加配置对话框(Dialog),添加各种控件来把界面搭起来(Static,EditControl,ComboBox,Button);3)针对配置对话框,新建CSconfig类;这个不是必须,也可以在新建Dialog的里面实现,不过单独建一个类逻辑更清楚一点。4)添加变量,消息和函数,这个大部分工作都可以在类向导里面完成。这个写起来很长,操作可以看教程,实现可以看代码。5)与串口配置(OnConfig)和收发(OnCommMscomm)相关的有两点,一是,串口属于独占资源,如果未释放无法被重用,记得先关闭现有的端口,再打开新的端口,GetPortOpen(),SetCommPort(),SetPortOpen()的使用顺序;二是接受发送数据实际是处理GetCommEvent方法,如果要自己触发发送,那么要自己实现(参考例程中Onsendbtn());6)注意事项:初始化参数不要自定义,因为在DoDataExchange里面,有把类对象和IDC的编号挂钩,有把变量和控件属性挂钩,并用MFC自己的机制辅助更新,如果重复定义会造成编译时assert失败。

    参考代码时候,请先自行梳理,资源(控件)有哪些,类有哪些,资源和类之间通过哪些变量关联(包括MFC辅助定义的),自己实现或者重载的方法有哪些?

    例程只实现了基本的收发,而以上这些框架都想清楚了,就可以自己发挥,加入一些额外的功能。

0 0
原创粉丝点击