预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共25页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

++串口API应用[嵌入式]发布时间:2008-06-1412:50:15 /***********************************************************************************************initialSerial功能:串口初始化 参数:无 返回:无 ***********************************************************************************************/ voidinitialSerial()//串口初始化{charszComParams[50];DCBdcb;char*m_com;char*m_baud;char*m_jiaoyan;m_com="Com1";m_baud="1200";m_jiaoyan="E"; COMMTIMEOUTSCommTimeOuts;m_hIDComDev=NULL;m_hIDComDev=CreateFile(m_com,GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);//打开串口 if(m_hIDComDev==INVALID_HANDLE_VALUE){AfxMessageBox("打开串口错误0,请检查!");gotoendd;}if(m_hIDComDev==(HANDLE)-1){AfxMessageBox("打开串口错误,请检查!");gotoendd;} SetCommTimeouts(m_hIDComDev,&CommTimeOuts);//串口超时配置CommTimeOuts.ReadIntervalTimeout="0xFFFFFFFF";CommTimeOuts.ReadTotalTimeoutMultiplier=0;CommTimeOuts.ReadTotalTimeoutConstant=5000;CommTimeOuts.WriteTotalTimeoutMultiplier=0;CommTimeOuts.WriteTotalTimeoutConstant=5000;PurgeComm(m_hIDComDev,PURGE_TXABORT|PURGE_RXABORT|PURGE_TXCLEAR|PURGE_RXCLEAR);m_com="Com1:38400,E,8,1";wsprintf(szComParams,m_com);//设置串口参数 dcb.DCBlength=sizeof(DCB);GetCommState(m_hIDComDev,&dcb);// intbaud;baud=atoi(m_baud);dcb.BaudRate=baud;//设置波特率dcb.ByteSize=8;//设置校验字节 if((!SetCommState(m_hIDComDev,&dcb))||(!SetupComm(m_hIDComDev,10000,10000)))//设置串口和收发缓冲器的大小{DWORDdwError=GetLastError();CloseHandle(m_hIDComDev);}PurgeComm(m_hIDComDev,PURGE_RXCLEAR|PURGE_TXCLEAR|PURGE_TXABORT|PURGE_RXABORT);//清收发缓冲器endd:;}/************************************************************************************************SendData功能:发送数据给串口 参数:buff发送的数据send_length长度 返回:成功1失败0 ************************************************************************************************/DWORDSendData(unsignedcharbuff[],intsend_length)//发送数据{intt;DWORDdwBytesWritten;if(!WriteFile(m_hIDComDev,buff,send_length,&dwBytesWritten,NULL)){return0;}for(t=0;t<SEND_LENGTH;T++)fprintf(stdout,"%2X",buff[t]);printf("\n");PurgeComm(m_hIDComDev,PURGE_TXCL