小弟初来论坛,刚学用VC不久,求助大家一个关于VC下 MSCOMM串口数据发送的问题!
我用VC的MSCOMM控件做一个计算机串口与单片机通信的东西。
我的VC串口设置代码如下:
if(m_ctrlComm.GetPortOpen())
m_ctrlComm.SetPortOpen(FALSE);
m_ctrlComm.SetCommPort(1); //选择com1
if( !m_ctrlComm.GetPortOpen())
m_ctrlComm.SetPortOpen(TRUE);//打开串口
else
AfxMessageBox("cannot open serial port");
m_ctrlComm.SetSettings("2400,n,8,1"); //波特率2400,无校验,8个数据位,1个停止位
m_ctrlComm.SetInputMode(1); //1:表示以二进制方式检取数据
m_ctrlComm.SetRThreshold(1);
//参数1表示每当串口接收缓冲区中有多于或等于1个字符时将引发一个接收数据的OnComm事件
m_ctrlComm.SetInputLen(0); //设置当前接收区数据长度为0
m_ctrlComm.GetInput();//先预读缓冲区以清除残留数据
在OnComm事件中的数据发送我试过:
CByteArray array;
int TxData[];
array.SetSize(sizeof(TxData)); //TxData为要发送数据的数组数据
for(int i=0;i<sizeof(TxData);i++)
array.SetAt(i, TxData[i]);
m_ctrlComm.SetOutput(COleVariant(array));
或
CByteArray array;
array.SetSize(8);
array[0] = 0xF2;
array[1] = 0xF2;
array[2] = 0x00;
array[3] = 0x02;
array[4] = 0x00;
array[5] = 0xC8;
array[6] = 0x00;
array[7] = 0xCA;
m_ComPort.SetOutput(COleVariant(array));
现能够按我自己的要求接收并显示数据,但发送却出了问题,加入发送代码时不是没有反应就是没有响应,求助于各位,希望大家帮个忙,在下感激不尽!!