我正在创建一个用于项目测试目的的简单文件。代码的主要功能是通过虚拟COM端口发送和接收数据。' ack'应该触发程序发送数据,但我只能收到' ack ?????'。感谢任何帮助。
using namespace std;
int main(){
HANDLE hcom;
hcom = CreateFile("COM5",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING
,FILE_ATTRIBUTE_NORMAL,NULL);
if (hcom == INVALID_HANDLE_VALUE)
{
fprintf(stderr, "fail to open port\n");
exit(0);
}
SetupComm(hcom,1024,1024);
DCB dcb;
GetCommState(hcom,&dcb);
dcb.BaudRate = 9600;
dcb.ByteSize = 8;
dcb.Parity = 0;
dcb.StopBits = 1;
SetCommState(hcom,&dcb);
char data[]={01, 02, 03, 04, 05, 06, 07, 08};//just something simple, trying to convert into hex then send to COM
char received[3];//trying to convert whatever received into char
DWORD dwWrittenLen = 0;
DWORD dwReadsize = 0;
bool re = ReadFile(hcom,received,3,&dwReadsize,NULL);
printf("%s", received);
if(received == 'ack'){
if(!WriteFile(hcom,data,1024,&dwWrittenLen,NULL))
{
fprintf(stderr, "fail!\n");
}
k++;
printf("succeed!\n" ,k);
Sleep(10*1000); //send data every 10s
}
return 0;
}'