#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#include <termios.h>
int main() {
// 打开串口设备
int serial_port = open("/dev/ttyS0", O_RDWR);
if (serial_port < 0) {
perror(“无法打开串口设备”);
return -1;
}
// 配置串口参数
struct termios tty;
tcgetattr(serial_port, &tty);
cfsetospeed(&tty, B9600); // 波特率设置为9600
cfsetispeed(&tty, B9600);
tty.c_cflag &= ~PARENB; // 禁用奇偶校验
tty.c_cflag &= ~CSTOPB; // 1位停止位
tty.c_cflag &= ~CSIZE; // 清除数据位设置
tty.c_cflag |= CS8; // 设置数据位为8位
tcsetattr(serial_port, TCSANOW, &tty);
// 读取串口数据
char buffer[256];
while (1) {
int num_bytes = read(serial_port, buffer, sizeof(buffer));
if (num_bytes > 0) {
buffer[num_bytes] = '\0'; // 添加字符串结束符
printf("接收到的数据: %s", buffer);
}
}
// 关闭串口
close(serial_port);
return 0;
}