千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁(yè)  >  技術(shù)干貨  > Ubuntu下查看串口設(shè)備

Ubuntu下查看串口設(shè)備

來(lái)源:千鋒教育
發(fā)布人:xqq
時(shí)間: 2023-11-22 17:16:22 1700644582

一、安裝串口驅(qū)動(dòng)程序

在Ubuntu系統(tǒng)里,默認(rèn)情況下是不帶有串口驅(qū)動(dòng)程序的,需要手動(dòng)安裝。以FTDI USB轉(zhuǎn)串口為例:


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

安裝之后可以通過(guò)如下命令來(lái)查看是否安裝成功:


lsmod |grep ftdi_sio

如果出現(xiàn)ftdi_sio這一項(xiàng),即表示安裝成功。

二、查看串口設(shè)備

在Ubuntu下查看串口設(shè)備的過(guò)程中,可以使用ls -l /dev/serial/by-id命令,也可以使用dmesg | grep tty命令。

三、設(shè)置串口參數(shù)

在Ubuntu下,可以使用stty命令設(shè)置串口的參數(shù),例如波特率、數(shù)據(jù)位、校驗(yàn)位、停止位等等。如下:


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

其中,-F表示指定串口設(shè)備文件,115200表示波特率,cs8表示數(shù)據(jù)位為8位,-cstopb表示停止位為1位,-parity表示校驗(yàn)位為無(wú),-icanon表示模擬輸入行編輯模式,-echo表示輸出回顯。

四、讀寫串口數(shù)據(jù)

在Ubuntu下,可以使用串口調(diào)試助手minicom等工具來(lái)進(jìn)行串口的讀寫操作。也可以通過(guò)編寫C語(yǔ)言程序,使用串口通信庫(kù)來(lái)進(jìn)行讀寫操作。

以下是一個(gè)簡(jiǎn)單的C語(yǔ)言程序,通過(guò)串口發(fā)送和接收數(shù)據(jù):


#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;
}

該程序使用了open、tcgetattrcfsetispeed、cfsetospeed、tcsetattr、write、read、close等串口通信庫(kù)函數(shù)。

五、總結(jié)

本文主要介紹了在Ubuntu下如何查看串口設(shè)備、安裝串口驅(qū)動(dòng)程序、設(shè)置串口參數(shù)、讀寫串口數(shù)據(jù)等操作。通過(guò)本文的介紹,相信讀者已經(jīng)對(duì)Ubuntu下的串口通信有了更深入的了解。

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
HTML下拉框選擇事件詳解

HTML的下拉框是頁(yè)面中常用的控件之一,它可以讓用戶在一組預(yù)設(shè)選項(xiàng)中進(jìn)行選擇。而下拉框選擇事件是指用戶在點(diǎn)擊或選擇下拉框時(shí)觸發(fā)的事件,本文...詳情>>

2023-11-22 19:29:35
從多個(gè)方面詳解set轉(zhuǎn)數(shù)組

一、set轉(zhuǎn)數(shù)組 js在JavaScript中,可以使用Spread運(yùn)算符將Set轉(zhuǎn)換為數(shù)組,如下所示:const mySet = new Set([1,2,3,4,5]);const myA詳情>>

2023-11-22 19:22:23
如何獲取radio選中的值

一、基礎(chǔ)概念在HTML中,有時(shí)需要用戶選擇一個(gè)值作為輸入。一種常見(jiàn)的做法是使用radio按鈕。如下所示: 男性   女性  ...詳情>>

2023-11-22 19:18:47
Matlab畫圖顏色與選項(xiàng)

Matlab是一種強(qiáng)大的計(jì)算機(jī)編程語(yǔ)言,用于各種各樣的數(shù)據(jù)分析和可視化,其中Matlab畫圖的顏色選項(xiàng)尤其重要。本文將從多個(gè)方面詳細(xì)介紹Matlab畫圖...詳情>>

2023-11-22 19:04:23
如何將Vue數(shù)組轉(zhuǎn)換為對(duì)象

一、Vue數(shù)組和對(duì)象的概念及區(qū)別在開(kāi)始探究如何將Vue數(shù)組轉(zhuǎn)換為對(duì)象之前,我們需要先了解Vue數(shù)組和對(duì)象的概念及區(qū)別。Vue數(shù)組:在Vue中,當(dāng)我們...詳情>>

2023-11-22 18:42:47