用c语言写一个串口发送函数
时间: 2023-03-31 08:01:06 浏览: 316
用C语言编写串口程序
可以使用以下代码实现串口发送函数:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
#include <termios.h>
int serial_send(char *port, int baudrate, char *data)
{
int fd;
struct termios options;
// 打开串口
fd = open(port, O_RDWR | O_NOCTTY | O_NDELAY);
if (fd < ) {
perror("open");
return -1;
}
// 配置串口
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;
options.c_cc[VMIN] = 1;
options.c_cc[VTIME] = ;
tcsetattr(fd, TCSANOW, &options);
// 发送数据
int len = strlen(data);
int ret = write(fd, data, len);
if (ret != len) {
perror("write");
close(fd);
return -1;
}
// 关闭串口
close(fd);
return ;
}
```
其中,port 表示串口设备文件路径,如 "/dev/ttyS";baudrate 表示波特率,如 960;data 表示要发送的数据。函数返回值为 表示发送成功,-1 表示发送失败。
阅读全文