|
- int InitUART(void)
- {
- hCom = CreateFile(TEXT("COM15"),
- GENERIC_READ|GENERIC_WRITE, //允許讀
- 0, //指定共享屬性,由于串口不能共享,所以該參數(shù)必須為0
- NULL,
- OPEN_EXIStiNG, //打開(kāi)而不是創(chuàng)建
- 0, //屬性描述,該值為FILE_FLAG_OVERLAPPED,表示使用異步I/O,該參數(shù)為0,表示同步I/O操作
- NULL);
- if (hCom == INVALID_HANDLE_VALUE)
- {
- printf("打開(kāi)COM失敗!\n");
- return FALSE;
- }
- else
- {
- printf("COM打開(kāi)成功!\n");
- }
- SetupComm(hCom, 1024, 1024); //輸入緩沖區(qū)和輸出緩沖區(qū)的大小都是1024字節(jié)
- /*********************************超時(shí)設(shè)置**************************************/
- COMMTIMEOUTS TimeOuts;
- //設(shè)定讀超時(shí)
- TimeOuts.ReadIntervalTimeout = MAXBYTE;//讀間隔超時(shí)
- TimeOuts.ReadTotalTimeoutMultiplier = 0;//讀時(shí)間系數(shù)
- TimeOuts.ReadTotalTimeoutConstant = 0;//讀時(shí)間常量
- //設(shè)定寫(xiě)超 int Dis, Vol, 時(shí)int Dis, Vol,
- TimeOuts.WriteTotalTimeoutMultiplier = 1;//寫(xiě)時(shí)間系數(shù)
- TimeOuts.WriteTotalTimeoutConstant = 1;//寫(xiě)時(shí)間常量
- SetCommTimeouts(hCom, &TimeOuts); //設(shè)置超時(shí)數(shù)據(jù)寫(xiě)入
- /*****************************************配置串口***************************/
- DCB dcb;
- GetCommState(hCom, &dcb);
- dcb.BaudRate = 9600; //波特率為9600
- dcb.ByteSize = 8; //每個(gè)字節(jié)有8位
- dcb.Parity = NOPARITY; //無(wú)奇偶校驗(yàn)位
- dcb.StopBits = ONESTOPBIT; //一個(gè)停止位
- SetCommState(hCom, &dcb);//配置數(shù)據(jù)寫(xiě)入
- return 1;
- }
復(fù)制代碼
|
-
-
|