bool RS485::receive(frame &frame_receive){ //读取的字节数 DWORD wCount; //读取状态 int bReadStat = 0; char byte_buf = 0; char *frame_length = new char[2]; char frame_type = 0; // printf("开始读取\n"); //读取起始位 ReadFile(hCom,&byte_buf,1,&wCount,NULL); if (byte_buf != 0x10) { // printf("未读取到起始位0x10\n"); return false; } ReadFile(hCom,&byte_buf,1,&wCount,NULL); if(byte_buf != 0x02){ // printf("未读取到到起始位0x02\n"); return false; } //读取帧长度 ReadFile(hCom,frame_length,2,&wCount,NULL); //读取帧类型 ReadFile(hCom, &frame_type, 1,&wCount,NULL); frame_receive.set_type(frame_type); //读取帧 ReadFile(hCom, frame_receive.getFrame() + 5, frame_receive.getLength() -5,&wCount,NULL); return true; }