win32简单串口操作

来源:互联网 发布:c语言求和函数 编辑:程序博客网 时间:2024/05/29 07:09
bool init(){HANDLE hCom=CreateFile("COM1",//COM1口GENERIC_READ|GENERIC_WRITE, //允许读和写0, //独占方式NULL,OPEN_EXISTING, //打开而不是创建0, //同步方式NULL);if(hCom==INVALID_HANDLE_VALUE){int mm = GetLastError();return FALSE;}SetupComm(hCom,1024,1024); //输入缓冲区和输出缓冲区的大小都是1024COMMTIMEOUTS TimeOuts;//设定读超时TimeOuts.ReadIntervalTimeout=1000;TimeOuts.ReadTotalTimeoutMultiplier=500;TimeOuts.ReadTotalTimeoutConstant=5000;//设定写超时TimeOuts.WriteTotalTimeoutMultiplier=500;TimeOuts.WriteTotalTimeoutConstant=2000;SetCommTimeouts(hCom,&TimeOuts); //设置超时DCB dcb;GetCommState(hCom,&dcb);dcb.BaudRate=9600; //波特率为9600dcb.ByteSize=8; //每个字节有8位dcb.Parity=NOPARITY; //无奇偶校验位dcb.StopBits=ONESTOPBIT; //两个停止位SetCommState(hCom,&dcb);PurgeComm(hCom,PURGE_TXCLEAR|PURGE_RXCLEAR);}bool readCom(HANDLE hCom){char str[100];DWORD wCount;//读取的字节数BOOL bReadStat;bReadStat=ReadFile(hCom,str,100,&wCount,NULL);if(!bReadStat){return false;}return true;}bool writeCom(HANDLE hCom){COMSTAT ComStat;DWORD dwErrorFlags;BOOL bWriteStat;ClearCommError(hCom,&dwErrorFlags,&ComStat);char lpOutBuffer[100];DWORD dwBytesWrite=100;COMSTAT ComStat;DWORD dwErrorFlags;BOOL bWriteStat;ClearCommError(hCom,&dwErrorFlags,&ComStat);bWriteStat=WriteFile(hCom,lpOutBuffer,dwBytesWrite,& dwBytesWrite,NULL);if(!bWriteStat){return false;}PurgeComm(hCom, PURGE_TXABORT|PURGE_RXABORT|PURGE_TXCLEAR|PURGE_RXCLEAR);return true;}


 

原创粉丝点击