91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于RK3576開發板的UART使用說明

ljx2016 ? 來源:ljx2016 ? 作者:ljx2016 ? 2025-05-07 09:58 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1. Uart介紹

1.1 串口資源介紹

EASY EAI Orin-Nano開發板的串口資源被劃分為兩類。一類是已被特定功能所占用的【不可用串口】,另外一個類可由用戶自由使用的【可用串口】。

【不可直接使用的串口】分布情況如下所示。

串口號 設備節點 描述
串口0 /dev/ttyFIQ0 調試串口占用,不作為普通串口使用
串口1~3 串口所關聯的引腳,已被復用成其他功能
串口5~7 串口所關聯的引腳,已被復用成其他功能
串口9 串口所關聯的引腳,已被復用成其他功能
串口11 串口所關聯的引腳,已被復用成其他功能

硬件分布情況如下所示。

wKgZPGgavr-Adn-3AAlWAS9ilgU255.png

【可用串口】分布情況如下所示。

串口號 設備節點 描述
串口4 /dev/ttyS4 TTL電平。
串口8 /dev/ttyS8 TTL電平。
串口10 /dev/ttyS10 TTL電平。

硬件分布情況如下所示。

wKgZO2gavr-AIU6JABSKbEN7uLs747.jpg

1.2 硬件接線

wKgZPGgavsCAErX-AADdNgPRzl4529.png

常規接線,設備與設備進行通信

wKgZO2gavsCALFE6AALSnvyoSqM696.png

本單例測試接線,利用跳線帽把Rxd引腳與Txd引腳短接,進行自發自收。

wKgZPGgavsCAe0f1AAAVjDK6NzU600.png

2. 快速上手

2.1 例程源碼下載

到【百度網盤】上下載相關的單例程序:

鏈接:https://pan.baidu.com/s/1RXHMGpmGSEfFy0rb1VkXSg?pwd=1234

提取碼: 1234

比如在windows環境中,就把單例程序下載到:此電腦D:BaiduNetdisk (無規定,用戶可自主選擇),如下圖所示。

wKgZO2gavsGAUof0AACzhmeQ3po782.png

然后把例程【復制粘貼】到nfs掛載目錄中。(不清楚目錄如何構建的,可以參考《入門指南/開發環境準備/nfs服務搭建與掛載》)

wKgZPGgavsGAIniMAADwWl9gvDM747.png

2.2 例程編譯&運行

通過adb shell進入開發板環境(不清楚如何通過adb進行調試,可以參考《入門指南/開發板調試方式介紹/adb調試》),執行下方命令定位到demo目錄,并且執行編譯操作。

cd /home/orin-nano/Desktop/nfs/06_Uart/
./build.sh
wKgZO2gavsGAK9IzAAGhxNw928o853.png

編譯成功后,相關的demo會生成2個可執行程序在Release目錄下。它們分別是發送端demo:test-Send,接收端demo:test-Recv。

先執行下方命令以運行接收端demo,如下所示。

sudo ./Release/test-Recv /dev/ttyS10

執行效果如下所示,此時接收端會等待發送端發來數據。

wKgZPGgavsGAA-a6AAAqfLF93SQ796.png

再用【Ctrl+Shift+T】打開新終端,然后進入adbshell,定位到demo目錄,如何所示:

wKgZO2gavsGAPQNEAAAoQroEPRo918.png

最后執行下方命令以運行發送端demo,如下所示。

sudo ./Release/test-Send /dev/ttyS10
wKgZPGgavsKAQLpyAACkmUe63O8872.png

此時切換回來剛才的終端,就會發現接收端demo已經收到了發送端demo發過來的數據了。

wKgZO2gavsKAGCfoAAClZ1veJIQ364.png

3. C語言使用案例

串口的C語言使用案例,接收端代碼地址為06_UART/test-uart/Recv.c,供用戶編碼參考。以下代碼展示了對串口接收端操作流程:

int main(int argc, char **argv)
{
    if(2 != argc){
        printf("Usage:n");
        printf("    sudo %s %sn", argv[0], "/dev/ttyS");
        return -1;
    }

    int fd = UART_Open(argv[1]);
    if(fd < 0){
        printf("33[33m【Open ERROR!】%sn", DEBUG_COLOR_TAIL);
        return -1;
    }
    
    if(false == UART_Set(fd, 115200, 0, 8, 1, 'N')){
        printf("33[33m【Init ERROR!】%sn", DEBUG_COLOR_TAIL);
        return -1;
    }
    
    const char *strReceiver = "I am uart Receiver";
    printf("33[36m【Init OK "%s"】%sn", strReceiver, DEBUG_COLOR_TAIL);

    char recvBuf[128]={0};
    while(1){
        if(UART_Recv(fd, recvBuf, sizeof(recvBuf)) <= 0){
            continue;
        }else{
            printf("33[36m【Recv Msg from Sender】:%s",   DEBUG_COLOR_TAIL);
            printf("    %sn", recvBuf);
            break;
        }
    }
    UART_Close(fd);
    
    printf("33[42m【Recv date OK. BYE BYE!】%sn", DEBUG_COLOR_TAIL);
    
	return 0;
}

發送端代碼地址為06_UART/test-uart/Send.c,供用戶編碼參考。以下代碼展示了對串口發送端操作流程:

int main(int argc, char **argv)
{
    if(2 != argc){
        printf("Usage:n");
        printf("    sudo %s %sn", argv[0], "/dev/ttyACM");
        return -1;
    }

    int fd = UART_Open(argv[1]);
    if(fd < 0){
        printf("33[33m【Open ERROR!】%sn", DEBUG_COLOR_TAIL);
        return -1;
    }
    
    if(false == UART_Set(fd, 115200, 0, 8, 1, 'N')){
        printf("33[33m【Init ERROR!】%sn", DEBUG_COLOR_TAIL);
        return -1;
    }
    
    char *strSender = "I am uart Sender";
    printf("33[36m【Init OK "%s"】%sn", strSender, DEBUG_COLOR_TAIL);
    
    int len = UART_Send(fd, strSender, strlen(strSender));
    if(len <= 0){
        printf("33[41m【Send data ERROR!】%sn", DEBUG_COLOR_TAIL);
        return -1;
    }
    UART_Close(fd);
    
    printf("33[42m【Send date OK. BYE BYE!】%sn", DEBUG_COLOR_TAIL);
    
	return 0;
}

其中UART_Open(),UART_Set(),UART_Send(),UART_Recv()是對系統調用的易用化封裝。具體實現于06_UART/commonApi/uart.c

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • uart
    +關注

    關注

    22

    文章

    1276

    瀏覽量

    103904
  • 開發板
    +關注

    關注

    25

    文章

    5675

    瀏覽量

    104571
  • rk3576
    +關注

    關注

    1

    文章

    173

    瀏覽量

    715
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    基于RK3576開發板的WDT看門狗使用說明

    RK3576開發板的WDT使用說明
    的頭像 發表于 05-06 17:15 ?626次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>的WDT看門狗<b class='flag-5'>使用說明</b>

    基于RK3576開發板的PCIE固態硬盤使用說明

    RK3576開發板的PICE固態硬盤使用方法
    的頭像 發表于 05-06 17:33 ?1344次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>的PCIE固態硬盤<b class='flag-5'>使用說明</b>

    基于RK3576開發板的TF卡槽使用說明

    RK3576開發板使用TF卡槽
    的頭像 發表于 05-07 09:24 ?747次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>的TF卡槽<b class='flag-5'>使用說明</b>

    基于RK3576開發板的PWN使用說明

    RK3576開發板使用PWN教程及Demo
    的頭像 發表于 05-07 14:07 ?1273次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>的PWN<b class='flag-5'>使用說明</b>

    基于RK3576開發板的RTC使用說明

    文章主要展示RK3576開發板的RTC信息和快速上手例程
    的頭像 發表于 05-07 15:04 ?802次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>的RTC<b class='flag-5'>使用說明</b>

    基于RK3576開發板的人臉識別算法

    RK3576開發板展示人臉識別算法例程和API說明
    的頭像 發表于 05-07 16:48 ?1929次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>的人臉識別算法

    新品體驗 | RK3576開發板

    RK3399、RK3566、RK3568、RK3588、RK3576等型號的核心與評估
    的頭像 發表于 11-01 08:08 ?1910次閱讀
    新品體驗 | <b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>

    米爾RK3576開發板特惠活動!

    近日,米爾電子發布基于瑞芯微RK3576核心開發板RK3576作為國產熱門處理器,其高性能數據處理能力、領先的AI智能分析、強大的擴展性與兼容性受到廣大
    的頭像 發表于 11-12 01:00 ?852次閱讀
    米爾<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>特惠活動!

    敬請期待 | 迅為RK3576開發板即將發布

    敬請期待 | 迅為RK3576開發板即將發布
    的頭像 發表于 11-22 15:13 ?618次閱讀
    敬請期待 | 迅為<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>即將發布

    迅為RK3576開發板核心與底板接口硬件介紹

    迅為RK3576開發板核心與底板接口硬件介紹
    的頭像 發表于 01-14 15:15 ?1504次閱讀
    迅為<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>核心<b class='flag-5'>板</b>與底板接口硬件介紹

    迅為RK3576開發板Android?多屏顯示

    迅為RK3576開發板Android?多屏顯示
    的頭像 發表于 01-16 16:58 ?1007次閱讀
    迅為<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>Android?多屏顯示

    基于RK3576開發板的MIPI-DSI使用

    MIPI DSI接口是由MIPI聯盟下的Display工作組指定的DSI(Display Serial Interface)的接口標準。rk3576開發板使用mipi-dsi教程
    的頭像 發表于 05-06 16:11 ?367次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>的MIPI-DSI使用

    基于RK3576開發板的揚聲器和耳機使用說明

    RK3576開發板的揚聲器和耳機使用說明
    的頭像 發表于 05-06 16:36 ?399次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>的揚聲器和耳機<b class='flag-5'>使用說明</b>

    基于RK3576開發板的HDMI-OUT使用說明

    RK3576開發板的HDMI-OUT使用說明
    的頭像 發表于 05-06 16:48 ?339次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>的HDMI-OUT<b class='flag-5'>使用說明</b>

    基于RK3576開發板的人員檢測算法

    展示了RK3576開發板的人員檢測算法例程及API說明
    的頭像 發表于 05-07 17:33 ?291次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>的人員檢測算法
    主站蜘蛛池模板: 国产毛片毛片精品天天看 | 四色成人网 | 国产人成高清视频观看 | 超级黄色毛片 | 亚洲国产精品国产自在在线 | 国产区一区二区三 | 97色在线| 亚洲国产精品丝袜在线观看 | 久久精品国产精品亚洲人人 | 日本不卡一区二区三区在线观看 | 亚洲美女视频一区 | 成人免费看片视频色多多 | 久碰香蕉精品视频在线观看 | 日毛片 | 天天网综合 | 婷婷毛片 | 大学生一级特黄的免费大片视频 | 永久免费看| 男女交性视频播放视频视频 | 四虎在线观看免费永久 | 狠狠干2021| 国产精品特黄毛片 | 在线视频免费播放 | 中文字幕第15页 | 亚洲视频福利 | h黄色| 明日花绮罗snis-862在线播放 | 天堂中文在线www | 国产精品va一区二区三区 | 亚洲 欧美 日韩 在线 中文字幕 | 日本动漫在线看 | 日本免费人成黄页网观看视频 | 狠狠狠操| 黄在线看 | 天天色天天射综合网 | 国产亚洲精品线观看77 | 最新国产你懂的在线网址 | 国产h视频在线 | 国产性老妇女做爰在线 | www.xxx欧美| 久久青青草原精品老司机 |