女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

    文章

    1264

    瀏覽量

    103227
  • 開發板
    +關注

    關注

    25

    文章

    5499

    瀏覽量

    102165
  • rk3576
    +關注

    關注

    1

    文章

    145

    瀏覽量

    552
收藏 人收藏

    評論

    相關推薦
    熱點推薦

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

    RK3576開發板的WDT使用說明
    的頭像 發表于 05-06 17:15 ?478次閱讀
    基于<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 ?1197次閱讀
    基于<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 ?572次閱讀
    基于<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 ?1158次閱讀
    基于<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 ?623次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>的RTC<b class='flag-5'>使用說明</b>

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

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

    新品體驗 | RK3576開發板

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

    米爾RK3576開發板特惠活動!

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

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

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

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

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

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

    迅為RK3576開發板Android?多屏顯示
    的頭像 發表于 01-16 16:58 ?820次閱讀
    迅為<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 ?251次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>的MIPI-DSI使用

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

    RK3576開發板的揚聲器和耳機使用說明
    的頭像 發表于 05-06 16:36 ?205次閱讀
    基于<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 ?183次閱讀
    基于<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 ?204次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發板</b>的人員檢測算法