![](https://csdnimg.cn/release/download_crawler_static/86830800/bg3.jpg)
这个函数是用来处理串口消息事件的,如每当串口接收到数据,就会产生一个
串口接收数据缓冲区中有字符的消息事件,我们刚才添加的函数就会执行,我们
在 OnComm()函数加入相应的处理代码就能实现自已想要的功能了。请你在函数
中加入如下代码:
void CSCommTestDlg::OnComm()
{
// TODO: Add your control notification handler code here
VARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len,k;
BYTE rxdata[2048]; //设置 BYTE 数组 An 8—bit integerthat is not
signed。
CString strtemp;
if(m_ctrlComm.GetCommEvent()==2) //事件值为 2 表示接收缓冲区
内有字符
{ ////////以下你可以根据自己的通信协议
加入处理代码
variant_inp=m_ctrlComm。GetInput(); //读缓冲区
safearray_inp=variant_inp; //VARIANT 型变量转换为
ColeSafeArray 型变量
len=safearray_inp.GetOneDimSize(); //得到有效数据长度
for(k=0;k〈len;k++)
safearray_inp.GetElement(&k,rxdata+k);//转换为
BYTE 型数组
for(k=0;k〈len;k++) //将数组转换为 Cstring 型变量
{
BYTE bt=*(char*)(rxdata+k); //字符型
strtemp.Format("%c”,bt); //将字符送入临时变
量 strtemp 存放
m_strRXData+=strtemp; //加入接收编辑框对应字符
串
}
}
UpdateData(FALSE); //更新编辑框内容
}
到目前为止还不能在接收编辑框中看到数据,因为我们还没有打开串口,但运行
程序不应该有任何错误,不然,你肯定哪儿没看仔细,因为我是打开 VC6 对照着
做一步写一行的,运行试试.没错吧?那么做下一步:
6。打开串口和设置串口参数 你可以在你需要的时候打开串口,例如在程序中
做一个开始按钮,在该按钮的处理函数中打开串口。现在我们在主对话框的
CSCommTestDlg::OnInitDialog()打开串口,加入如下代码: