吴忠躺衫网络科技有限公司

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

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

3天內不再提示

基于MicroROS學習板的串口通信接收實驗

CHANBAEK ? 來源:魚香ROS ? 作者:小魚 ? 2023-07-03 10:48 ? 次閱讀

你好,我是愛吃魚香ROS的小魚。上一節我們完成了第一個Hello World工程,學習使用了串口模塊的初始化和發送,本節我們再來一個串口接收小實驗,把串口收發數據補齊。

教程所使用硬件平臺為MicroROS學習板V1.0.0,可點擊閱讀原文購買及查看詳情

圖片

一、檢測并接收單個字符

1.1 代碼編寫

/**
 * @file demo01_read_byte.cpp
 * @author fishros@foxmail.com
 * @brief 初始化串口,當有數據過來的時候讀取并將數據打印出來
 * @version 0.1
 * @date 2022-12-18
 * 
 * @copyright Copyright (c) 2022
 * 
 */
#include < Arduino.h >


void setup()
{
    // 初始化串口
    Serial.begin(115200);
}


void loop()
{
    // 判斷是否有有效數據,返回值是有效數據的長度
    if (Serial.available())
    {
        // 讀取一個數據
        int c = Serial.read();
        // -1 代表接收失敗
        if (c != -1)
        {
            // 以%c字符的格式輸出接收的數據
            Serial.printf("I receve %c\\n", c);
        }
    }
}

這里多用了一個函數Serial.available(),該函數代表當前串口中緩存有效數據的長度。

1.2 使用串口監視器發送消息

使用快捷鍵,編譯 Ctrl+Alt+B、上傳 Ctrl+Alt+U,接著準備發送數據

因為要發送消息,這里我們換一個收發分離的串口監視器來進行數據發送

使用Ctrl+Alt+~打開終端,接著在終端中你可以看到串口監視器一欄

圖片

接著打開我們板子對應的串口設備

?選擇串口編號

?設置波特率

?點擊開始監視

圖片

發送測試

?輸入數據

?點擊發送

?查看返回

圖片

嘗試發送12

圖片

可以看到收到了兩條返回,這是因為我們每次只接收一個數據,所以即使發送12,接收數據也是一個一個接收和打印的。

那有沒有辦法一次性接收多個數據呢?我們換個函數即可。

二、一次性接收一串數據

2.1 代碼編寫

/**
 * @file demo01_read_byte.cpp
 * @author fishros@foxmail.com
 * @brief 初始化串口,當有數據過來的時候讀取并將數據打印出來
 * @version 0.1
 * @date 2022-12-18
 *
 * @copyright Copyright (c) 2022
 *
 */
#include < Arduino.h >


void setup()
{
    // 初始化串口
    Serial.begin(115200);
}


void loop()
{
    // 判斷是否有有效數據
    if (Serial.available())
    {
        // 讀取一個String字符串數據
        String str = Serial.readString();
        // 以%s的格式輸出接收的數據
        Serial.printf("I receve %s\\n", str.c_str());
    }
}

2.2 編譯下載

點擊按鈕或者使用快捷鍵編譯下載代碼。

如果你在下載代碼時遇到下面的錯誤,是因為剛剛的串口監視器沒有關閉,

Auto-detected: /dev/ttyUSB0
Uploading .pio/build/featheresp32/firmware.bin
esptool.py v4.2.1
Serial port /dev/ttyUSB0
Connecting...........
serial.serialutil.SerialException: device reports readiness to read but returned no data (device disconnected or multiple access on port?)
*** [upload] Error 1

點擊停止監視后,繼續下載即可

圖片

2.3 測試

下載完成后,重新打開串口,接著發送一串消息

圖片

三、總結

本節我們通過兩個串口接收數據小實驗,學習了串口數據的接收和發送。 下一節我們開始學習如何完成點燈。

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

    關注

    34

    文章

    1627

    瀏覽量

    55732
  • 代碼
    +關注

    關注

    30

    文章

    4828

    瀏覽量

    69055
  • 學習板
    +關注

    關注

    0

    文章

    45

    瀏覽量

    12196
  • ROS
    ROS
    +關注

    關注

    1

    文章

    280

    瀏覽量

    17100
收藏 人收藏

    評論

    相關推薦

    stm32L152RCDISCOVER進行串口通信實驗接收亂碼怎么解決?

    使用stm32L152RCDISCOVER開發進行串口通信實驗為什么接收亂碼
    發表于 03-11 07:56

    串口通信實驗分享

    實驗四、串口通信實驗? 自律學習堅強 ,拒絕迷茫。作者:行走的皮卡丘時間:2021/4/4喜歡就去追,這個紅燈等不到,說不定下一個紅燈等到了,嘻嘻!!!!!!!文章目錄
    發表于 01-14 09:08

    HL配套C實驗例程單片機串口接收數據

    HL配套C實驗例程單片機串口接收數據,配合開發學習效果更好。
    發表于 04-11 17:04 ?1次下載

    ARM基礎應用實驗_串口通信

    ARM嵌入式應用程序架構設計實例精講--ARM基礎應用實驗01串口通信
    發表于 07-08 11:08 ?0次下載

    ARM基礎應用實驗_串口通信.rar

    電子專業單片機相關知識學習教材資料——ARM基礎應用實驗01串口通信
    發表于 09-13 17:23 ?0次下載

    上位機串口通信數據接收事件程序

    上位機 串口 通信主要介紹通信串口的初始化和串口緩沖區數據的讀取,因為此處只是作為指令來讀取,數據量小,所以緩沖區數據的讀取為有數據
    發表于 03-13 15:08 ?4002次閱讀
    上位機<b class='flag-5'>串口</b><b class='flag-5'>通信</b>數據<b class='flag-5'>接收</b>事件程序

    串口通信與串行通信的區別和寄存器及通信實驗等詳細資料說明

    本文檔的主要內容詳細介紹的是串口通信學習課件免費下載包括了:1、串口通信與串行通信的區別,2、
    發表于 12-17 17:08 ?11次下載
    <b class='flag-5'>串口</b><b class='flag-5'>通信</b>與串行<b class='flag-5'>通信</b>的區別和寄存器及<b class='flag-5'>通信實驗</b>等詳細資料說明

    基礎實驗13-USART串口接收實驗

    基礎實驗13-USART串口接收實驗實驗目的:掌握定時器USART接收字符串的方法。
    發表于 12-14 18:53 ?1次下載
    基礎<b class='flag-5'>實驗</b>13-USART<b class='flag-5'>串口</b><b class='flag-5'>接收</b><b class='flag-5'>實驗</b>

    16 . USART 串口通信實驗

    USART 串口通信實驗我們知道STM32F1 內部含有非常多的通信接口,我們就來學習下USART 串口
    發表于 12-20 19:22 ?20次下載
    16 . USART <b class='flag-5'>串口</b><b class='flag-5'>通信實驗</b>

    STM32 串口通信實驗

    stm32串口通信實驗UART通信實驗(通用異步收發器)UART串口通信原理:UART的通信過程
    發表于 12-20 19:26 ?15次下載
    STM32 <b class='flag-5'>串口</b><b class='flag-5'>通信實驗</b>

    ESP32學習記錄<三>串口通信

    ESP32學習記錄串口通信文章目錄ESP32學習記錄串口通信前言一、通過
    發表于 12-20 19:34 ?17次下載
    ESP32<b class='flag-5'>學習</b>記錄<三><b class='flag-5'>串口</b><b class='flag-5'>通信</b>

    關于使用stm32核心進行USART串口通信實驗

    目錄一、關于串口通信1.串口通信2.USART二、USART串口通信程序1.準備工作2.
    發表于 12-24 19:00 ?0次下載
    關于使用stm32核心<b class='flag-5'>板</b>進行USART<b class='flag-5'>串口</b><b class='flag-5'>通信</b>的<b class='flag-5'>實驗</b>

    實驗四、串口通信實驗

    實驗四、串口通信實驗? 自律
    發表于 01-14 10:09 ?2次下載
    <b class='flag-5'>實驗</b>四、<b class='flag-5'>串口</b><b class='flag-5'>通信實驗</b>

    串口通信實驗資料分享

    串口通信實驗資料分享
    發表于 06-29 15:03 ?5次下載

    stc32G12k128使用舊清翔51實驗學習UART通信實驗

    stc32G12k128使用舊清翔51實驗學習UART通信實驗程序,利用舊版,學習32位單片機的串口
    發表于 11-21 10:21 ?3次下載
    二八杠技巧培训| 百家乐官方网址| 百家乐公式论坛| 欢乐谷娱乐城开户| 电子百家乐官网破| 澳门百家乐规则视频| 沈阳娱乐棋牌网| 玩百家乐官网输了| 威尼斯人娱乐城玩百家乐| 棋牌百家乐官网赢钱经验技巧评测网| 百家乐娱乐城介绍| 凯斯线上娱乐| 百家乐娱乐城博彩| 大发888葡京下载地址| 百家乐官网赌场规则| 大发888游戏好吗| 百家乐官网套利| bet365网站地址器| 百家乐最新心得| 优博国际娱乐城| 百家乐官网赌博论坛在线| 太阳城百家乐口诀| 大发888游戏代冲省钱技巧| 粤港澳百家乐官网赌场娱乐网规则 | 新濠百家乐的玩法技巧和规则| 百家乐分析概率原件| 网上百家乐官网如何作假| 威尼斯人娱乐网最新地址| 网上百家乐官网公司| 赌博娱乐城| 百家乐压分技巧| 百家乐天下| 大三元百家乐的玩法技巧和规则| 网上百家乐如何作假| 金臂百家乐官网开户送彩金| 百家乐技巧玩法技巧| 赌场百家乐官网玩法介绍| 大发888新址 | 买百家乐程序| 首席百家乐官网的玩法技巧和规则| 富川|