1 #include <Windows.h> 2 #include <iostream> 3 4 //blog.csdn.net/wowocpp/article/details/80610385 5 int main() 6 { 7 //全局变量,串口句柄 8 HANDLE hCom=CreateFile("COM1",GENERIC_READ|GENERIC_WRITE,0, NULL,OPEN_EXISTING, 0,NULL); 9 if(hCom==(HANDLE)-1) 10 { 11 printf_s("打开COM失败!"); 12 return FALSE; 13 } 14 else 15 { 16 SetupComm(hCom,1024,1024); //输入缓冲区和输出缓冲区的大小都是1024 17 COMMTIMEOUTS TimeOuts; 18 //设定读超时 19 TimeOuts.ReadIntervalTimeout=1000; 20 TimeOuts.ReadTotalTimeoutMultiplier=500; 21 TimeOuts.ReadTotalTimeoutConstant=5000; 22 //设定写超时 23 TimeOuts.WriteTotalTimeoutMultiplier=500; 24 TimeOuts.WriteTotalTimeoutConstant=2000; 25 SetCommTimeouts(hCom,&TimeOuts); //设置超时 26 27 DCB dcb; 28 GetCommState(hCom,&dcb); 29 dcb.BaudRate=9600; //波特率为9600 30 dcb.ByteSize=8; //每个字节有8位 31 dcb.Parity=NOPARITY; //无奇偶校验位 32 dcb.StopBits=TWOSTOPBITS; //两个停止位 33 SetCommState(hCom,&dcb); 34 35 PurgeComm(hCom,PURGE_TXCLEAR|PURGE_RXCLEAR); 36 37 //同步读串口 38 char str[100]; 39 DWORD wCount;//读取的字节数 40 BOOL bReadStat; 41 bReadStat=ReadFile(hCom,str,100, &wCount, NULL); 42 if(!bReadStat) 43 { 44 printf_s("读串口失败!"); 45 return FALSE; 46 } 47 else 48 { 49 printf_s("%s",str); 50 } 51 } 52 53 system("pause"); 54 return 0; 55 }