最近在做GSM短信收发功能的软件,用的是vc2005,通过mscomm控件串口和GSM连接,下面是pc发送字符串的代码,给发送一个AT\r\n字符串,不能正常返回OK,有时间,点发送之后,立即接收到AT\r\n字符...那位给提点建意,应该怎样发送才能让GSM正常接收到AT指令,另外,我用串口精灵是可以发送字符串的...
void Ctest_MSCommDlg::OnSendData()
{
// TODO: 在此添加控件通知处理程序代码 int i,j,strLeng_temp;
if(!m_Comm.get_PortOpen())
m_Comm.put_PortOpen(true); //若没打开串口,则打开
UpdateData(true); //将编辑框中的数据传递给变量
strLeng_temp = m_Send.GetLength(); char *hz;
char *pi;
hz = (char *)malloc(strLeng_temp * sizeof(char));
WideCharToMultiByte(CP_ACP,0,m_Send.GetBuffer(0),-1,hz,(2 * strLeng_temp),NULL,NULL);
pi = hz; CByteArray marray;
marray.RemoveAll();
marray.SetSize(2*strLeng_temp);
j = 0;
for(i = 0;i < strLeng_temp;i++)
{
BYTE bLow;
BYTE bHigh;
bLow = *((BYTE *)pi);
marray.SetAt(j,hz[j]);
j++;
pi++;
bHigh = *((BYTE *)pi);
marray.SetAt(j,hz[j]);
j++;
pi++;
}
m_Comm.put_Output(COleSafeArray(marray));
m_Send.ReleaseBuffer();
}