头歌linux串口通讯
时间: 2023-07-20 09:10:20 浏览: 112
linux串口通讯
Linux 通过串口通讯需要使用串口驱动程序,并且需要利用串口设备节点进行读写操作。下面是一个简单的 Linux 串口通讯代码示例:
```c
#include <stdio.h>
#include <fcntl.h>
#include <termios.h>
#include <unistd.h>
int main()
{
int fd;
struct termios opt;
char wbuf[256] = "Hello, serial port!";
char rbuf[256];
// 打开串口
fd = open("/dev/ttyS0", O_RDWR | O_NOCTTY | O_NDELAY);
if (fd < 0) {
perror("open");
return -1;
}
// 配置串口参数
tcgetattr(fd, &opt);
cfsetispeed(&opt, B115200);
cfsetospeed(&opt, B115200);
opt.c_cflag &= ~PARENB;
opt.c_cflag &= ~CSTOPB;
opt.c_cflag &= ~CSIZE;
opt.c_cflag |= CS8;
tcsetattr(fd, TCSANOW, &opt);
// 发送数据
write(fd, wbuf, sizeof(wbuf));
// 接收数据
int len = read(fd, rbuf, sizeof(rbuf));
if (len < 0) {
perror("read");
return -1;
}
rbuf[len] = '\0';
printf("Received: %s\n", rbuf);
// 关闭串口
close(fd);
return 0;
}
```
上述代码中,我们使用 `open()` 函数打开串口设备节点 `/dev/ttyS0`,并且设置了串口参数。然后使用 `write()` 函数向串口中写入数据,使用 `read()` 函数从串口中读取数据。最后使用 `close()` 函数关闭串口。
阅读全文