
串口通信是一种通过串行端口进行数据传输的技术,常用于计算机与外部设备之间的通信。在Python中,可以使用 pyserial
库来实现 串口通信。以下是一个简单的示例:,,1. 确保已经安装了 pyserial
库,如果没有安装,可以使用以下命令安装:,,“ bash,pip install pyserial,
` ,,2. 编写一个简单的Python程序来实现串口通信:,,
` python,import serial,,# 打开串口,ser = serial.Serial('/dev/ttyS0', 9600, timeout=1),,# 发送数据,ser.write(b'Hello, World!'),,# 接收数据,data = ser.readline(),print("Received data:", data),,# 关闭串口,ser.close(),
` ,,在这个示例中,我们首先导入了
serial 模块,然后使用
serial.Serial() 函数打开了一个串口(这里使用了
/dev/ttyS0 ,你需要根据实际情况修改为你的串口设备名),并设置了波特率为9600和超时时间为1秒。我们使用
ser.write() 函数发送了一条消息,然后使用
ser.readline() 函数接收数据,并将接收到的数据打印出来。我们使用
ser.close()`函数关闭了串口。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
#include <termios.h>
#include <errno.h>
// 串口设备路径
#define SERIAL_DEVICE "/dev/ttyS0"
// 串口配置参数
struct termios config = {
.c_iflag = IGNPAR,
.c_oflag = 0,
.c_lflag = 0,
.c_cflag = B9600 | CS8 | CLOCAL | CREAD,
.c_cc[VMIN] = 0,
.c_cc[VTIME] = 10
};
int main(int argc, char *argv[])
{
int fd;
// 打开串口设备
if ((fd = open(SERIAL_DEVICE, O_RDWR | O_NOCTTY | O_NDELAY)) == 1) {
perror("open");
return 1;
}
// 配置串口
if (tcsetattr(fd, TCSANOW, &config) != 0) {
perror("tcsetattr");
close(fd);
return 1;
}
// 发送数据
char send_buf[] = "Hello, serial!";
if (write(fd, send_buf, strlen(send_buf)) == 1) {
perror("write");
close(fd);
return 1;
}
// 接收数据
char recv_buf[256];
ssize_t len;
if ((len = read(fd, recv_buf, sizeof(recv_buf) 1)) == 1) {
perror("read");
close(fd);
return 1;
}
recv_buf[len] = '