C语言串口接收数据代码
时间: 2023-09-13 19:14:01 浏览: 88
串口接收试验 C语言 程序代码.rar
以下是一份简单的C语言串口接收数据的代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <unistd.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("打开串口设备失败");
return -1;
}
// 配置串口属性
tcgetattr(fd, &options);
cfsetispeed(&options, B9600); // 设置输入波特率
cfsetospeed(&options, B9600); // 设置输出波特率
options.c_cflag |= (CLOCAL | CREAD); // 必须设置的两个标志
options.c_cflag &= ~PARENB; // 不进行奇偶校验
options.c_cflag &= ~CSTOPB; // 设置停止位为1个
options.c_cflag &= ~CSIZE; // 先清除数据位掩码
options.c_cflag |= CS8; // 设置数据位为8位
tcsetattr(fd, TCSANOW, &options); // 使设置生效
// 读取数据
char buf[255];
int len;
while (1) {
len = read(fd, buf, 255); // 从串口读取数据
if (len > 0) {
buf[len] = '\0';
printf("收到数据:%s\n", buf);
}
}
// 关闭串口设备文件
close(fd);
return 0;
}
```
在代码中,我们首先打开了串口设备文件`/dev/ttyS0`,并且通过`tcgetattr()`和`tcsetattr()`函数配置了串口属性。然后我们使用`read()`函数从串口读取数据,并在读取到数据时输出收到的数据。最后,我们关闭了串口设备文件。
阅读全文