你会写C语言串口通信的代码嘛
时间: 2024-02-05 22:11:00 浏览: 101
当然可以,以下是一个简单的C语言串口通信的代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
#include <termios.h>
int open_serial_port(const char *port, int baudrate) {
int fd;
struct termios options;
fd = open(port, O_RDWR | O_NOCTTY | O_NDELAY);
if (fd < 0) {
perror("open");
return -1;
}
fcntl(fd, F_SETFL, 0);
tcgetattr(fd, &options);
cfsetispeed(&options, baudrate);
cfsetospeed(&options, baudrate);
options.c_cflag |= (CLOCAL | CREAD);
options.c_cflag &= ~PARENB;
options.c_cflag &= ~CSTOPB;
options.c_cflag &= ~CSIZE;
options.c_cflag |= CS8;
options.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);
options.c_oflag &= ~OPOST;
tcsetattr(fd, TCSANOW, &options);
return fd;
}
int main(int argc, char **argv) {
int fd;
char buf[256];
fd = open_serial_port("/dev/ttyUSB0", B9600);
if (fd < 0) {
exit(1);
}
while (1) {
memset(buf, 0, sizeof(buf));
read(fd, buf, sizeof(buf));
printf("%s", buf);
}
close(fd);
return 0;
}
```
该代码打开了串口设备文件`/dev/ttyUSB0`,并设置波特率为9600,然后进入一个死循环,不断接收串口数据并打印输出。你可以根据自己的需要进行修改。
阅读全文