无法从COM端口读取任何内容(十六进制值) 我试图配置我的C++应用程序,以便使用COM端口与设备通信。我目前可以使用HTerm软件来完成:

无法从COM端口读取任何内容(十六进制值) 我试图配置我的C++应用程序,以便使用COM端口与设备通信。我目前可以使用HTerm软件来完成:,c++,visual-c++,serial-port,serial-communication,C++,Visual C++,Serial Port,Serial Communication,但是,当我尝试执行我的C++实现时,我不能从端口读取任何字节。这是我的节目: 你知道发生了什么事吗 编辑1 正如@rveerd所建议的,我试着用这些行禁用握手,结果相同: dcbSerialParams.fRtsControl = RTS_CONTROL_DISABLE; dcbSerialParams.fDtrControl = DTR_CONTROL_DISABLE; dcbSerialParams.fOutxCtsFlow = 0; dcbSerialParams.fOutxDsrFlow

<>但是,当我尝试执行我的C++实现时,我不能从端口读取任何字节。这是我的节目:

你知道发生了什么事吗

编辑1

正如@rveerd所建议的,我试着用这些行禁用握手,结果相同:

dcbSerialParams.fRtsControl = RTS_CONTROL_DISABLE;
dcbSerialParams.fDtrControl = DTR_CONTROL_DISABLE;
dcbSerialParams.fOutxCtsFlow = 0;
dcbSerialParams.fOutxDsrFlow = 0;
dcbSerialParams.fNull = 0;
dcbSerialParams.fOutX = 0;
dcbSerialParams.fInX = 0;

可能您需要禁用握手:

dcbSerialParamsfBinary = TRUE;
dcbSerialParamsfOutxCtsFlow = FALSE; // CTS output handshaking.
dcbSerialParamsfOutxDsrFlow = FALSE; // DSR output handshaking.
dcbSerialParamsfDtrControl = DTR_CONTROL_DISABLE; // DTR handshaking.
dcbSerialParamsfDsrSensitivity = FALSE; // DSR input control.
dcbSerialParamsfTXContinueOnXoff = TRUE;
dcbSerialParamsfOutX = FALSE; // XON/XOFF data flow control.
dcbSerialParamsfInX = FALSE; // XON/XOFF data flow control.
dcbSerialParamsfErrorChar = FALSE;
dcbSerialParamsfNull = FALSE;
dcbSerialParamsfRtsControl = RTS_CONTROL_DISABLE; // RTS handshaking.
dcbSerialParamsfAbortOnError = FALSE;
dcbSerialParamswReserved = 0;
dcbSerialParamsXonLim = 0;
dcbSerialParamsXoffLim = 0;
dcbSerialParamsXonChar = 0;
dcbSerialParamsXoffChar = 0;
dcbSerialParamsErrorChar = 0;
dcbSerialParamsEofChar = 0;
dcbSerialParamsEvtChar = 0;

我将命令的十六进制值设置为错误的格式,它们应该是这样的:

unsigned char buffer[20] = { 0x00 };
unsigned char init[] = { 0x50, 0x00, 0x00, 0x05, 0x55};
感谢微软论坛中的r

dcbSerialParamsfBinary = TRUE;
dcbSerialParamsfOutxCtsFlow = FALSE; // CTS output handshaking.
dcbSerialParamsfOutxDsrFlow = FALSE; // DSR output handshaking.
dcbSerialParamsfDtrControl = DTR_CONTROL_DISABLE; // DTR handshaking.
dcbSerialParamsfDsrSensitivity = FALSE; // DSR input control.
dcbSerialParamsfTXContinueOnXoff = TRUE;
dcbSerialParamsfOutX = FALSE; // XON/XOFF data flow control.
dcbSerialParamsfInX = FALSE; // XON/XOFF data flow control.
dcbSerialParamsfErrorChar = FALSE;
dcbSerialParamsfNull = FALSE;
dcbSerialParamsfRtsControl = RTS_CONTROL_DISABLE; // RTS handshaking.
dcbSerialParamsfAbortOnError = FALSE;
dcbSerialParamswReserved = 0;
dcbSerialParamsXonLim = 0;
dcbSerialParamsXoffLim = 0;
dcbSerialParamsXonChar = 0;
dcbSerialParamsXoffChar = 0;
dcbSerialParamsErrorChar = 0;
dcbSerialParamsEofChar = 0;
dcbSerialParamsEvtChar = 0;
unsigned char buffer[20] = { 0x00 };
unsigned char init[] = { 0x50, 0x00, 0x00, 0x05, 0x55};