VC 串口通信(modbus 通信协议)
附源代码
赵光制作:Email:yiweisky@163.com;QQ:312890533
承接单片机项目开发,C51,PIC18F,MSP430
1, 在桌面新建文件夹 yiwei
2, 运行 vc6.0, 建立一个基于对话框的 MFC 应用程序 yiwei, 选择 Project 菜单下
Add To Project 子菜单中的 Components and Controls…选项,在弹出的对话框中
双 击 Registered ActiveX Controls 项 . 选 择 Microsoft Communications Control,
version 6.0,,单击 Insert 按钮将它插入到我们的 Project 中来,并把电话拖到对
话框中.
3, 打 开 ClassWizard - Member Viariables 选 项 卡 , 选 择 CYiweiDlg 类 , 为
IDC_MSCOMM1 添加控制变量:m_Comm,
4, 在对话框中添加控件向主对话框中添加三个编辑框,一个用于接收显示数据
ID 为 IDC_RXD,一个用于输入发送数据,ID 为 IDC_TXD,另一个用于显示返
回数据的十进制值,ID 为 IDC_SHI,再添加一个按钮,功能是按一次发送一帧数
据,将其 ID 设为 IDC_FA。
5, 再 打 开 ClassWizard - Member Viariables 选 项 卡 , 选 择 CYiweiDlg 类 , 为
IDC_RXD 添加 CString 变量 m_rxd,为 IDC_TXD 添加 CString 变量 m_txd。为
IDC_SHI 添加 CString 变量 m_shi。说明: m_rxd 和 m_txd 分别用来放入接收和
发送的字符数据。
6, 添加串口事件消息处理函数 OnComm(),打开 ClassWizard-Message Maps,选
择类 CyiweiDlg,选择 IDC_MSCOMM1,双击消息 OnComm,将弹出的对话框
中将函数名改为 OnComm。这个函数是用来处理串口消息事件的,如每当串口
接收到数据,就会产生一个串口接收数据缓冲区中有字符的消息事件,我们刚
才添加的函数就会执行,我们在 OnComm()函数加入相应的处理代码就能实现
自已想要的功能了。请在函数中加入如下代码:
VARIANT Input;
CString temp;
long k;
int len=0;
COleSafeArray OleArray;//构造一个任何类型的空数组.
BYTE rxdata[10];
if (2==m_Comm.GetCommEvent())
{
Input=m_Comm.GetInput(); //读缓冲区