1、包含头文件:使用<windows.h>
包含必要的API声明。
2、打开串口:使用CreateFile
函数打开串口,要打开COM1串口,代码如下:
HANDLE hComm = CreateFile("\\.\COM1", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if (hComm == INVALID_HANDLE_VALUE) { printf("Error in opening serial port "); return; }
3、配置串口参数:使用GetCommState
函数获取当前串口的配置,然后修改DCB
结构体中的参数,最后使用SetCommState
函数设置串口参数,设置波特率为9600,数据位为8,无校验位,1个停止位:
DCB dcbSerialParams = {0}; dcbSerialParams.DCBlength = sizeof(dcbSerialParams); if (!GetCommState(hComm, &dcbSerialParams)) { printf("Error getting state "); return; } dcbSerialParams.BaudRate = CBR_9600; dcbSerialParams.ByteSize = 8; dcbSerialParams.StopBits = ONESTOPBIT; dcbSerialParams.Parity = NOPARITY; if (!SetCommState(hComm, &dcbSerialParams)) { printf("Error setting state "); return; }
4、读写数据:使用ReadFile
和WriteFile
函数进行数据的读取和写入,读取数据到缓冲区buffer
中:
char buffer[256]; DWORD bytesRead; if (!ReadFile(hComm, buffer, sizeof(buffer), &bytesRead, NULL)) { DWORD error = GetLastError(); printf("Read failed with error %lu ", error); return; } buffer[bytesRead] = '