先实现一段代码:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <termios.h>
int main() {
int fd;
struct termios options;
fd = open("/dev/ttyS0", O_RDWR | O_NOCTTY | O_NDELAY); // 打开串口
if (fd < 0) {
perror("open_port: Unable to open serial port - ");
return -1;
}
tcgetattr(fd, &options); // 获取当前串口配置
cfsetispeed(&options, B9600); // 设置输入波特率为9600
cfsetospeed(&options, B9600); // 设置输出波特率为9600
options.c_cflag |= (CSIZE | CSTOPB); // 设置字符大小,并添加两个停止位
options.c_cflag &= ~PARENB; // 禁用校验位
options.c_cflag &= ~CSTOPB; // 设置为1位停止位
options.c_cflag &= ~CSIZE; // 清除字符大小位
options.c_cflag |= CS8; // 设置字符大小为9位
tcsetattr(fd, TCSANOW, &options); // 设置新的串口配置
// 以下是读写串口的代码
// ...
close(fd); // 关闭串口
return 0;
}