标签:
HANDLE hCom;//全局變量串口句柄 COMMTIMEOUTS TimeOuts; DCB dcb; 按鈕代碼() { hCom=CreateFile(L“COM1”,// 串口名稱 GENERIC_READ|GENERIC_WRITE,//允许读和写 0,//独占方式 NULL, OPEN_EXISTING,// 打开而不是创建 0,//同步方式 NULL); ///////////////////////////////////////////////////////////////////////////////////////////////// if(hCom==(HANDLE)-1) { MessageBox(L"打开 COM 失败!"); } SetupComm(hCom,1024,1024);//输入缓冲区和输出缓冲区的大小都是1024 //设定读超时 TimeOuts.ReadIntervalTimeout=1000; TimeOuts.ReadTotalTimeoutMultiplier=500; TimeOuts.ReadTotalTimeoutConstant=5000; //设定写超时 TimeOuts.WriteTotalTimeoutMultiplier=500; TimeOuts.WriteTotalTimeoutConstant=2000; SetCommTimeouts(hCom,&TimeOuts); GetCommState(hCom,&dcb); dcb.BaudRate=9600;//波特壘率为 9600 dcb.ByteSize=8;//每个字节有3 8 位 dcb.Parity=NOPARITY;//无奇偶校验位 dcb.StopBits=TWOSTOPBITS;//两个停止位 SetCommState(hCom,&dcb); PurgeComm(hCom,PURGE_TXCLEAR|PURGE_RXCLEAR); //Com 同步通訊寫入() //Com 同步通訊讀出() //關閉com(); } Com 同步通訊寫入() { char lpOutBuffer[100]={"%01#WCSY00080**\r"};//需要nSend 的數據 DWORD dwBytesWrite=100;//寫入數據的緩衝區大小 COMSTAT ComStat; DWORD dwErrorFlags; BOOL bWriteStat; ClearCommError(hCom,&dwErrorFlags,&ComStat); bWriteStat=WriteFile(hCom,lpOutBuffer,dwBytesWrite,& dwBytesWrite,NULL);//寫入數據 if(!bWriteStat) { MessageBox(L"写串口失败!"); } } Com 同步通訊讀出() { char str[100]={""};//初始化 DWORD wCount;//读取的字节数 BOOL bReadStat; bReadStat=ReadFile(hCom,str,100,&wCount,NULL);//讀出數據 if(!bReadStat) { MessageBox(L"读串口失败!"); return ; } CloseHandle(hCom);//關閉串口 } 關閉com() { CloseHandle(hCom);//關閉串口 }
标签:
原文地址:http://www.cnblogs.com/sidongboke/p/4377447.html