=" />

串口通信关键代码

1.打开串口

m_mscom.SetCommPort(2); //选择串口:COM1
m_mscom.SetInputMode(1); //设置输入方式1为二进制方式
m_mscom.SetSettings("9600,n,8,1"); //波特率9600,无校验,8个数据位,1个停止位
m_mscom.SetInputLen(1024); //设置当前接收区数据长度为1024
m_mscom.SetRThreshold(1); //缓冲区>=1个字符时引发事件
m_mscom.SetRTSEnable(1); //设置RTS允许
m_mscom.SetPortOpen(true); //打开选择的串口

2.接收数据

if(m_mscom.GetCommEvent()==2) //事件值为2表示接收缓冲区内有字符
{
char str[1024]={0};
long k;
AfxMessageBox("接收到数据!");
VARIANT InputData = m_mscom.GetInput(); //读缓冲区
COleSafeArray sa ;
sa = InputData; //VARIANT型变量转换为ColeSafeArray型变量
for( k=0; ksa.GetElement(&k,str+k); //转换为BYTE型数组

m_edit1 +=str;
UpdateData(0);
}

3.发送数据

UpdateData(TRUE);
m_mscom.SetOutput(COleVariant(m_edit2));//发送CString类型的数据
或:
char buf[1024]={"sdlafjsdalfsdaf"}; //要发送的数据
m_mscom.SetOutput(COleVariant((LPCSTR)buf));//发送数据







相关文档
最新文档