我初始化了串口。返回为 HANDLE hComm={void}
我发送数据成功。
但是就是接收不到数据。返回长度为0;代码如下。char *data;
int nRendLen, nSendLen;
data = "at\r";
nSendLen = 3;
WriteFile(hComm, data, (DWORD)nSendLen , &nRendLen, NULL);
nSendLen = 1024;
ReadFile(hComm, data, (DWORD)nSendLen , &nRendLen, NULL);
我发送数据成功。
但是就是接收不到数据。返回长度为0;代码如下。char *data;
int nRendLen, nSendLen;
data = "at\r";
nSendLen = 3;
WriteFile(hComm, data, (DWORD)nSendLen , &nRendLen, NULL);
nSendLen = 1024;
ReadFile(hComm, data, (DWORD)nSendLen , &nRendLen, NULL);
解决方案 »
- vc下代码移植——请高手不吝赐教
- 我想让INNO SETUP自动释放文件,怎么写?
- 如何设置组合框高度?
- 子控件的重绘问题
- 问一下关于使用CreateMutex
- 关于SetBkcolor
- CFile xlsFile,xlsFile.Open(...)为什么有时会出错,有时不会呢!!!
- [100分] Windows2000 sp4系统下的程序在Windows2000 sp2系统下执行为何需要重新编译?? 来者有分,分不够再加
- 请问wireshark源码编译好后怎么导入到visual studio中?
- 如何进行远程进程内联汇编?-等待前辈指点
- 请指点迷津。二进制文件的生成和读取
- 怎么样改变xp风格的EDIT控件的背景颜色?
BOOL ok = WriteFile(hComm, data, (DWORD)nSendLen , &nRendLen, NULL);
返回ok=0;那就是发送也没有成功。
HANDLE hComm;
DCB dcb;
COMMTIMEOUTS timeouts = {
100,
1,
500,
1,
100}; hComm = CreateFile(pPort,
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
0,
NULL); if(hComm == INVALID_HANDLE_VALUE)
return FALSE; GetCommState(hComm, &dcb); dcb.BaudRate = 9600;
dcb.ByteSize = 8;
dcb.Parity = 0;
dcb.StopBits = 1; SetCommState(hComm, &dcb); SetupComm(hComm, 4096, 1024); SetCommTimeouts(hComm, &timeouts);
我的系统是2003.我看帮助里面说CreateFile适应与(me/98/95)。是不是哪里除了问题。
请问高手CreateFile是不是失败了啊。
我用终端控制器调试COM1的连接是好的。
可以问在2003里面有什么可以打开串口的函数么?我觉得CreateFile()不能打开啊。
m_hComm = CreateFile("\\\\.\\COM1",GENERIC_READ|GENERIC_WRITE,
FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,FILE_FLAG_OVERLAPPED,NULL);
只要BIOS中串口是允许状态,从来都没有失败。
应该用 "\\\\.\\COM1"
另外,在WriteFile过后,
最好 Sleep(X);等待串口上的设备响应。
然后再ReadFile
可能是vc++.net不行。
我把程序调到vc++6.0里面就没事了。在Vc++.net里面编译没有错。但就是打不开串口。有谁能告诉我为什么吗?
妈的vc++.net洋不洋。土不土的,本以为在界面方面好用一些。操算了。不用他了。
m_hCom=CreateFile("COM1",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED,NULL);
是可以打开的