千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > Ubuntu下查看串口设备

Ubuntu下查看串口设备

来源:千锋教育
发布人:xqq
时间: 2023-11-22 17:16:22 1700644582

一、安装串口驱动程序

在Ubuntu系统里,默认情况下是不带有串口驱动程序的,需要手动安装。以FTDI USB转串口为例:


sudo apt-get install git
sudo git clone https://github.com/juliagoda/ftdi_sio.git
cd ftdi_sio
make
sudo make install
sudo modprobe ftdi_sio

安装之后可以通过如下命令来查看是否安装成功:


lsmod |grep ftdi_sio

如果出现ftdi_sio这一项,即表示安装成功。

二、查看串口设备

在Ubuntu下查看串口设备的过程中,可以使用ls -l /dev/serial/by-id命令,也可以使用dmesg | grep tty命令。

三、设置串口参数

在Ubuntu下,可以使用stty命令设置串口的参数,例如波特率、数据位、校验位、停止位等等。如下:


sudo stty -F /dev/ttyUSB0 115200 cs8 -cstopb -parity -icanon -echo

其中,-F表示指定串口设备文件,115200表示波特率,cs8表示数据位为8位,-cstopb表示停止位为1位,-parity表示校验位为无,-icanon表示模拟输入行编辑模式,-echo表示输出回显。

四、读写串口数据

在Ubuntu下,可以使用串口调试助手minicom等工具来进行串口的读写操作。也可以通过编写C语言程序,使用串口通信库来进行读写操作。

以下是一个简单的C语言程序,通过串口发送和接收数据:


#include 
#include 
#include 
#include 
#include 

int main()
{
    int fd = -1;
    char buffer[100] = {0};

    fd = open("/dev/ttyUSB0", O_RDWR | O_NOCTTY | O_NDELAY);
    if(fd < 0)
    {
        perror("open error");
        return -1;
    }

    struct termios options;
    tcgetattr(fd, &options);
    cfsetispeed(&options, B115200);
    cfsetospeed(&options, B115200);
    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);

    tcsetattr(fd, TCSANOW, &options);

    char message[] = "hello world\n";
    write(fd, message, strlen(message));

    int count = read(fd, buffer, sizeof(buffer));
    if(count > 0)
    {
        printf("receive data: %s", buffer);
    }

    close(fd);

    return 0;
}

该程序使用了opentcgetattrcfsetispeedcfsetospeedtcsetattrwritereadclose等串口通信库函数。

五、总结

本文主要介绍了在Ubuntu下如何查看串口设备、安装串口驱动程序、设置串口参数、读写串口数据等操作。通过本文的介绍,相信读者已经对Ubuntu下的串口通信有了更深入的了解。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT