|
串口自发自收可以成功,但是发AT给GSM模块没有返回,是怎么回事?
[复制链接]
串口自发自收可以成功,但是发AT给GSM模块没有返回,是怎么回事?
下面是我发AT的程序,有错吗?m_strSendEdit是CString类,是跟一个编辑框关联,我再编辑框输入AT,我是创建一个接受线程接收的,将串口的TX和RX短接,能自发自收
void CSerialPortDlg::OnSend()
{
DWORD dwactlen;
if (m_hComm == INVALID_HANDLE_VALUE)
{
MessageBox(_T("COM Isn't Open Now!"));
return;
}
UpdateData(TRUE);
int len = m_strSendEdit.GetLength(); // 取得输入字符串长度
BYTE *psendbuf = new BYTE[len+2];
for(int i = 0; i < len;i++)
psendbuf = (BYTE)m_strSendEdit.GetAt(i); //转换为单字节字符
psendbuf[len]='\r'; //加入结束符
psendbuf[len+1]='\n';
BOOL ret=WriteFile(m_hComm, psendbuf, len, &dwactlen, NULL);//从串口发送数据
if(ret==FALSE)
{
AfxMessageBox(_T("WriteFile Failed"));
}
delete[] psendbuf;
}
|
|