我在写关于串口通信的程序,在程序中,我一开始打开了com2口,
用
BYTE bstr[3] = {'A','T','\r'};
DWORD dwBytesTransferred=0;
WriteFile(hComm,bstr,3,&dwBytesTransferred,0);
//这里dwBytesTransferred==3了
char buff[1024];
ret = ReadFile(m_pSerialCom->hComm,buff,1024,&dwBytesTransferred,0);
到这里就没有返回了~一直在读~
为什么会读不出数据呢?
我用超级终端方式输入AT回车后
是有OK返回的啊!
用
BYTE bstr[3] = {'A','T','\r'};
DWORD dwBytesTransferred=0;
WriteFile(hComm,bstr,3,&dwBytesTransferred,0);
//这里dwBytesTransferred==3了
char buff[1024];
ret = ReadFile(m_pSerialCom->hComm,buff,1024,&dwBytesTransferred,0);
到这里就没有返回了~一直在读~
为什么会读不出数据呢?
我用超级终端方式输入AT回车后
是有OK返回的啊!
解决方案 »
- 急急急!MFC画图问题
- 模拟键盘输入的问题
- win应用程序 怎样加入选项卡啊?
- MFC 实现界面
- CDateTimeCtrl控件显示格式问题
- 请问有谁有比较好的按钮或者静态框做的三种状态按钮的类啊,具体请进
- report格式的CListCtrl默认是不是只能修改第一列?
- 自定义 类的 消息循环函数中为什么不能访问 类的成员函数和静态成员函数
- 关于用Socket,请各位提示一下!!!!!
- 如何用FindResource和LoadResource载入并打开,读取(用什麽命令)用户自加的Resource文件?
- 串口CSerialPort类在对笔记本上的Modem使用时,出现CPU占用率100%
- 怎么制作setup文件,谢了。
如果是,你是否是判断EV_RXFLAG,这样你就要确定你的dcb.EvtChar是否和你接收的最后一个一样了,如果不一样肯定度不出来,你可以用EV_RXCHAR来取字符,只要串口接收到字符就会响应消息了
我用程序发送的那个AT后,不能ReadFile到文件
我停了程序后,打开超级终端,连上后就会收到我发的信息和内容了~
说明我发的是正确的AT
1. ReadFile(m_pSerialCom->hComm,buff,4,&dwBytesTransferred,0); 只读4个
2. 设置超时结构为立即返回,看看MSDN的COMMTIMEOUTS结构
typedef struct _DCB { DWORD DCBlength; DWORD BaudRate; DWORD fBinary :1; DWORD fParity :1; DWORD fOutxCtsFlow :1; DWORD fOutxDsrFlow :1; DWORD fDtrControl :2; DWORD fDsrSensitivity :1; DWORD fTXContinueOnXoff :1; DWORD fOutX :1; DWORD fInX :1; DWORD fErrorChar :1; DWORD fNull :1; DWORD fRtsControl :2; DWORD fAbortOnError :1; DWORD fDummy2 :17; WORD wReserved; WORD XonLim; WORD XoffLim; BYTE ByteSize; BYTE Parity; BYTE StopBits; char XonChar; char XoffChar; char ErrorChar; char EofChar; char EvtChar; WORD wReserved1;
} DCB;
有关,我改了一部分就可以收到了~多谢 smallsword(随风)