|
- int InitUART(void)
- {
- hCom = CreateFile(TEXT("COM15"),
- GENERIC_READ|GENERIC_WRITE, //允许读
- 0, //指定共享属性,由于串口不能共享,所以该参数必须为0
- NULL,
- OPEN_EXIStiNG, //打开而不是创建
- 0, //属性描述,该值为FILE_FLAG_OVERLAPPED,表示使用异步I/O,该参数为0,表示同步I/O操作
- NULL);
- if (hCom == INVALID_HANDLE_VALUE)
- {
- printf("打开COM失败!\n");
- return FALSE;
- }
- else
- {
- printf("COM打开成功!\n");
- }
- SetupComm(hCom, 1024, 1024); //输入缓冲区和输出缓冲区的大小都是1024字节
- /*********************************超时设置**************************************/
- COMMTIMEOUTS TimeOuts;
- //设定读超时
- TimeOuts.ReadIntervalTimeout = MAXBYTE;//读间隔超时
- TimeOuts.ReadTotalTimeoutMultiplier = 0;//读时间系数
- TimeOuts.ReadTotalTimeoutConstant = 0;//读时间常量
- //设定写超 int Dis, Vol, 时int Dis, Vol,
- TimeOuts.WriteTotalTimeoutMultiplier = 1;//写时间系数
- TimeOuts.WriteTotalTimeoutConstant = 1;//写时间常量
- SetCommTimeouts(hCom, &TimeOuts); //设置超时数据写入
- /*****************************************配置串口***************************/
- DCB dcb;
- GetCommState(hCom, &dcb);
- dcb.BaudRate = 9600; //波特率为9600
- dcb.ByteSize = 8; //每个字节有8位
- dcb.Parity = NOPARITY; //无奇偶校验位
- dcb.StopBits = ONESTOPBIT; //一个停止位
- SetCommState(hCom, &dcb);//配置数据写入
- return 1;
- }
复制代码
|
|