读书人

串口编程,如何得到设备中存储的值如 A

发布时间: 2012-02-25 10:01:48 作者: rapoo

串口编程,怎么得到设备中存储的值如 AT+CMGL(读取短信)?WriteFile/ReadFile
串口编程,怎么得到设备中存储的值如 AT+CMGL(读取短信)?

int WriteComm(void* pData, int nLength)
{
DWORD dwNumWrite;// 串口发出的数据长度

WriteFile(hComm, pData, (DWORD)nLength, &dwNumWrite, NULL);

return (int)dwNumWrite;
}

int ReadComm(void* pData, int nLength)
{
DWORD dwNumRead;// 串口收到的数据长度

ReadFile(hComm, pData, (DWORD)nLength, &dwNumRead, NULL);

return (int)dwNumRead;
}


没看懂 ReadFile(hComm, pData, (DWORD)nLength, &dwNumRead, NULL);
nLength怎么会知道?不是设备中的字符长度吗?




[解决办法]
这个nLength是你自己定义的,表示你这次ReadFile要读取多长的数据
[解决办法]
ReadFile(hComm, pData, (DWORD)nLength, &dwNumRead, NULL);
// nLength是指要读取的长度, dwNumRead指实际读取的长度
// msdn上写的很清楚
[解决办法]
// pData可以是BYTE*,char*,int*
// 如果应用在短信开发的话,char*最常用
[解决办法]
// void表示任意类型
[解决办法]

C/C++ code
CString m_send,str; m_send="AT+CMGF=0"+CHAR(13); // CHAR(13),自定义函数?dwCount=m_send.GetLength(); // 不认为m_send作为参数能正确给GSM模块发送命令// WriteFile(hCom,m_send,dwCount,&dwCount,NULL); WriteFile(hCom, m_send.GetBuffer(0), dwCount, &dwCount, NULL);m_send.ReleaseBuffer();m_send="AT+CMGL=4"+CHAR(13); dwCount=m_send.GetLength(); dwCount=m_send.GetLength(); char *cReadMessage; ReadFile(hCom,cReadMessage,(DWORD)200,&dwCount,NULL); CString strs; //"%c", *cReadMessage?//strs.Format("%c",*cReadMessage);strs.Format("%s", cReadMessage);
[解决办法]
// 没有环境。
// 你单步看看,哪句出错。

读书人网 >VC/MFC

热点推荐