微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

打开ComPort Visual C ++后无法发送数据和接收数据

如何解决打开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 举报,一经查实,本站将立刻删除。