linux串口编程实例
时间: 2023-08-10 07:38:08 浏览: 57
好的,下面是一个简单的 Linux 串口编程实例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <termios.h>
#include <string.h>
#include <unistd.h>
int main()
{
// 打开串口设备
int fd = open("/dev/ttyS0", O_RDWR | O_NOCTTY | O_NDELAY);
if (fd < 0) {
perror("open");
return -1;
}
// 配置串口参数
struct termios opt;
tcgetattr(fd, &opt);
cfsetispeed(&opt, B9600);
cfsetospeed(&opt, B9600);
opt.c_cflag |= CLOCAL | CREAD;
opt.c_cflag &= ~CSIZE;
opt.c_cflag |= CS8;
opt.c_cflag &= ~PARENB;
opt.c_cflag &= ~CSTOPB;
opt.c_cc[VTIME] = 0;
opt.c_cc[VMIN] = 1;
tcsetattr(fd, TCSANOW, &opt);
// 发送数据
char data[] = "Hello, world!";
int len = strlen(data);
int n = write(fd, data, len);
if (n != len) {
perror("write");
return -1;
}
// 接收数据
char buf[1024];
n = read(fd, buf, sizeof(buf));
if (n < 0) {
perror("read");
return -1;
}
buf[n] = '\0';
printf("Received: %s\n", buf);
// 关闭串口设备
close(fd);
return 0;
}
```
这个程序打开了 `/dev/ttyS0` 设备,配置了波特率为 9600,发送了一条数据并接收了回复。你可以根据需要修改串口设备名称和波特率,实现自己的串口通信程序。
阅读全文