要使用COM端口接收并识别短信息,代码如下,总是调试不通,请各位高人指点.另外请问如何才能自动识别端口号?DCB dcb;
char ATCommand[50];
DWORD wCount;hCom = CreateFile("COM3", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
if (hCom == (HANDLE)0xFFFFFFFF)
AfxMessageBox("打开串口错误");
GetCommState(hCom, &dcb);
dcb.BaudRate = 19200; //波特率为9600
dcb.ByteSize = 8; //数据位数为7位
dcb.Parity = 0; //偶校验
dcb.StopBits = 1; //两个停止位
dcb.fBinary = TRUE;
dcb.fParity = TRUE;
if (!SetCommState(hCom, &dcb))
AfxMessageBox("串口设置错误");
SetupComm(hCom, 1024, 1024);
PurgeComm(hCom, PURGE_TXABORT | PURGE_RXABORT | PURGE_TXCLEAR | PURGE_RXCLEAR);
SetCommMask(hCom ,EV_ERR|EV_RXCHAR);sprintf(ATCommand, "AT+CPMS=%d\r", 1);
//strcpy(ATCommand, "at+cpms='MT',+CPMS:2,352,OK");
if(NULL == WriteFile(hCom, ATCommand, strlen(ATCommand), &wCount, NULL))
AfxMessageBox("串口初始化错误");
else if(wCount != strlen(ATCommand))
AfxMessageBox("串口初始化错误");
ReadFile(hCom, pBuffer, 500, &wCount, NULL);
char ATCommand[50];
DWORD wCount;hCom = CreateFile("COM3", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
if (hCom == (HANDLE)0xFFFFFFFF)
AfxMessageBox("打开串口错误");
GetCommState(hCom, &dcb);
dcb.BaudRate = 19200; //波特率为9600
dcb.ByteSize = 8; //数据位数为7位
dcb.Parity = 0; //偶校验
dcb.StopBits = 1; //两个停止位
dcb.fBinary = TRUE;
dcb.fParity = TRUE;
if (!SetCommState(hCom, &dcb))
AfxMessageBox("串口设置错误");
SetupComm(hCom, 1024, 1024);
PurgeComm(hCom, PURGE_TXABORT | PURGE_RXABORT | PURGE_TXCLEAR | PURGE_RXCLEAR);
SetCommMask(hCom ,EV_ERR|EV_RXCHAR);sprintf(ATCommand, "AT+CPMS=%d\r", 1);
//strcpy(ATCommand, "at+cpms='MT',+CPMS:2,352,OK");
if(NULL == WriteFile(hCom, ATCommand, strlen(ATCommand), &wCount, NULL))
AfxMessageBox("串口初始化错误");
else if(wCount != strlen(ATCommand))
AfxMessageBox("串口初始化错误");
ReadFile(hCom, pBuffer, 500, &wCount, NULL);
解决方案 »
- 请问高手在CMyDlg类中如何启动CChild类中的多媒体定时器
- VC6 开发 ActiveX 问题
- 指针在构造函数与OnInitDialog函数区别
- 如何启动一个APP,让他隐藏,用户看不到?
- 基于对话框的程序中应用无模式对话框的问题
- 一个单文档的CFormView有个客户边框,如何去掉这么边框,看起跟对话框一样?
- 请指教一下关于_ConnectionPtr问题
- ●你们天天都吵着工作性质特别,没时间泡MM,你们来看看人家是怎么用电脑泡的~~~ 哈哈
- 报错
- 谁有IE请求WEB服务器的某一网页时提交的全部资料啊?最好还有服务器回答的全资料.
- 谁能给我说说 VNC 截屏的工作流程?
- 如何获取注册信息
solomon公司给我的AT命令是
at+cpms=?
+CPMS:(IM,OM,BM,MT,DM),(OM,DM),(IM)
OK
at+cpms="MT"
+CPMS:2,352
OK
请教下应该怎么写入程序中呢?
出现的问题是程序运行时一直堵塞在
ReadFile(hCom, pBuffer, 500, &wCount, NULL);
中,但是手机卡中有一条已读信息却无法读出,我想会不会是AT命令写法有问题?
"+CMGR:"REC RE"
"AD","01861","2"
"006/7/6,17:48:7""
" "
" "
" "
"10086 HF 18"
"61 OK"
查看了所接收到的数据,只有前两个字节有内容,估计是PDU格式的数据,但是我一直是按照TXT模式收的数据,怎么会后面出现PDU格式的数据呢?而且这个GPRS MODEM不支持PDU。
但是有一次得到了很多资料,估计那就是信息,但是在没有做任何程序改动的情况下为什么会有时候收得到有时候收不到呢?
而且在同一端口也是有时候能识别该硬件,有时候识别不到,返回ERROR。
请教各位……