MFC中用ActiveX控件实现串口通信

时间:2023-02-14 12:06:35

串口通信主体框架
(1) 初始化界面(自动获取全部可用串口)

(2) 打开串口 (读取串口号,初始化串口参数(波特率、校验位、数据位等),若串口已经打开则关闭串口)

(3) 发送数据 (更新控件状态,进入MSComm事件驱动函数,读缓冲区,数据转换,更新编辑框成员函数,更新编辑框内容)

(4)接收数据

(5) 退出界面 (检测串口是否开启,若开启则关闭串口,再进行退出)

m_mscomm.put__CommPort(1);//选择串口
m_mscomm.put_InputMode(1);//二进制方式读写数据
m_mscomm.put_InBufferSize(1024);//接收缓冲区大小,字节
m_mscomm.put_OutBufferSize(1024);//发送缓冲区大小,字节
m_mscomm.put_Settings(_T("9600,n,8,1"));//9600波特率,8个数据位,1个停止位
m_mscomm.put_InputLen(0);//设置当前接收区数据长度为0,表示全部读取
m_mscomm.put_RThreshold(1);//接收缓冲区有1个及1个以上字符时,将引发接收数据的OnComm
m_mscomm.put_PortOpen(TRUE);//打开串口,如果打开失败,此函数会调用AfxMessageBox来显示错误信息,并返回

在MFC中建立对话框的基础上,添加两个控件CComBox和Button控件,CComBox负责扫描所有可用串口,Button用于打开和关闭串口,然后右键鼠标,点击插入ActiveX控件,选择控件,出现如控件(电话图标),则表示插入控件成功

详细步骤:

选择Project菜单下Add To Project子菜单中的 Components and Controls…选项,在弹出的对话框中双击Registered ActiveX Controls项(稍等一会,这个过程较慢),则所有注册过的ActiveX控件出现在列表框中。 选择Microsoft Communications Control, version 6.0,,单击Insert按钮将它插入到我们的Project中来,接受缺省的选项。(如果你在控件列表中看不到Microsoft Communications Control, version 6.0,那可能是你在安装VC6时没有把ActiveX一项选上,重新安装VC6,选上ActiveX就可以了)

  • 有的电脑上没有串口控件,需要将mscomm32.ocx拷到system32文件夹下注册。
  • 在接收方和发送方的电脑上都要插上串口芯片,并在电脑的设备管理器里查询对应的COM口,和程序里面匹配。双方可以用同一个串口通信软件,也可以某一方用第三方串口通信软件

MFC中用ActiveX控件实现串口通信