Linux查看串口

发布时间:2023-05-23

一、打开和关闭串口

在Linux中,可以使用shell命令echo来打开和关闭串口,如下所示:

sudo echo "on" > /dev/ttyS0  # 打开串口
sudo echo "off" > /dev/ttyS0  # 关闭串口

其中,/dev/ttyS0是串口设备文件名,'on'表示打开串口,'off'表示关闭串口。 在执行打开和关闭串口的命令时,需要有足够的权限,因此需要使用sudo命令。

二、查看串口状态

在Linux中,可以使用stty命令来查看串口状态,如下所示:

stty -F /dev/ttyS0 -a

其中,/dev/ttyS0是串口设备文件名,-a参数表示查看所有当前串口设置的状态。 通过输出的结果,可以查看串口的波特率、数据位、停止位、校验位等参数,也可以进行修改设置。

三、串口通信

在Linux中,可以使用screen命令来进行串口通信。 首先,需要安装screen命令,可以使用以下命令来安装:

sudo apt-get install screen

安装完成后,可以使用以下命令来打开串口:

sudo screen /dev/ttyS0 115200

其中,/dev/ttyS0是串口设备文件名,115200表示波特率。 打开串口后,即可进行串口通信。可以使用Ctrl-A+K组合键来关闭屏幕,并关闭串口。

四、编程方式查看串口

在Linux中,可以使用编程方式来查看串口。下面是一个简单的示例代码:

#include <stdio.h>
#include <fcntl.h>
#include <termios.h>
int main(void)
{
    int fd;
    struct termios tty;
    fd = open("/dev/ttyS0", O_RDWR | O_NOCTTY);
    if(fd < 0)
    {
        printf("Open ttyS0 failed.\n");
        return -1;
    }
    bzero(&tty, sizeof(tty));
    cfmakeraw(&tty);
    cfsetspeed(&tty, 115200);
    tcsetattr(fd, TCSANOW, &tty);
    char buf[1024];
    int len;
    while(1)
    {
        len = read(fd, buf, sizeof(buf));
        if(len > 0)
        {
            buf[len] = '\0';
            printf("Read %d bytes: %s\n", len, buf);
        }
    }
    return 0;
}

上述代码使用了Linux系统提供的串口通信API函数。主要过程是打开串口设备文件,然后设置串口参数(波特率等),最后进入一个循环读取串口数据的过程。 通过上述代码,可以实现对串口数据的实时查看。