如何解决打开ComPort Visual C ++后无法发送数据和接收数据
我正在使Windows Console应用程序通过COM端口写入和读取数据。 但是,尽管COM端口已成功打开,但我无法发送和接收任何数据。
“打开COM端口”代码:
unsigned int c;
LPCWSTR portCom;
TCHAR ComString[30];
HANDLE hComm;
DCB port;
int main(int argc,char* argv[])
{
// Open COM port
_stprintf_s(ComString,11,_T("\\\\.\\COM3"));
hComm = CreateFile(ComString,GENERIC_READ | GENERIC_WRITE,OPEN_EXISTING,FILE_FLAG_OVERLAPPED,0);
if (hComm == INVALID_HANDLE_VALUE)
{
abort();
}
memset(&port,sizeof(port));
port.DCBlength = sizeof(port);
if (!::GetCommState(hComm,&port))
{
abort();
}
port.Baudrate = CBR_115200;
port.ByteSize = 8;
port.Parity = nopARITY;
port.StopBits = OnesTOPBIT;
if (!::SetCommState(hComm,&port))
{
abort();
}
“发送和接收数据”代码:
// Send and receive data
unsigned char sendData[8];
unsigned int rcvData = 0;
DWORD dwWritten;
DWORD dwRead;
sendData[0] = 'A';
WriteFile(hComm,&sendData[0],1,&dwWritten,NULL);
dwRead = 0;
while (dwRead == 0) {
ReadFile(hComm,&rcvData,&dwRead,NULL);
}
return 0;
}
解决方法
我解决了我的问题。 我发现使用CreateFas 0打开COM端口时需要设置FLAG。 谢谢大家。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。