当前位置:首页 > 行业动态 > 正文

c 串口api

C语言串口API有open、close、read、write等函数,用于打开、关闭串口及读写操作。

一、Windows平台

1、包含头文件:使用<windows.h>包含必要的API声明。

c 串口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个停止位:

c 串口api

 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、读写数据:使用ReadFileWriteFile函数进行数据的读取和写入,读取数据到缓冲区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] = '