描述:
我在调试运行时,可以读到串口返回的数据。可是在直接运行时却无法得到返回的数据。
请问是怎么回事?
#include <iostream.h>
#include <afxwin.h>
#include <stdio.h>
int main()
{
DCB dcb;
BOOL status;
DWORD error_number;
HANDLE handle_com;
status = true;
handle_com = CreateFile("COM1",
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
NULL,
NULL);
if(handle_com == INVALID_HANDLE_VALUE)
return -1;
if(!GetCommState(handle_com,&dcb))
return -1;
dcb.BaudRate = 9600;
dcb.ByteSize = 8;
dcb.Parity = NOPARITY;
dcb.StopBits = ONESTOPBIT;
dcb.fOutxCtsFlow = 0;
dcb.fRtsControl = RTS_CONTROL_ENABLE ;
if( !SetCommState(handle_com, &dcb) )
{
error_number = GetLastError();
status = false;
}
if(!status)
{
CloseHandle(handle_com);
return -1;
}
DWORD dwBytesWrite;
int pp=0;
if( pp=WriteFile(handle_com,"@01RD17\r",8,&dwBytesWrite,NULL))
{
if(dwBytesWrite != 8)
{
AfxMessageBox("发送失败!",MB_OK);
return -1;
}
}
char a[21];
memset(a,0,21);
DWORD dwBytesRead;
//Sleep(2000);//在这里有试过也不起作用
ReadFile(handle_com,a,21,&dwBytesRead,NULL);
CloseHandle(handle_com);
cout <<a<<endl;
return 0;
}
解决方案1:
路过帮顶