在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

ESP32學習筆記:串口

CHANBAEK ? 來源:跳動的字節 ? 作者:曉宇 ? 2023-07-13 17:09 ? 次閱讀

今天我們來玩兒串口。

概述

ESP32 芯片有3 個UART 接口,UART0,UART1,UART2,支持異步通信和 IrDA,通信速度最高可達 5Mbps,3 個接口可以被 DMACPU 直接訪問,3 個串口帶發送接收 FIFO,共享 1024*8bit 的 RAM,通過串口,我們可以非常方便的跟其它外設進行通信或者打印數據。

硬件

圖片

上圖是硬件參考設計,我把默認的串口標注出來了,我們可以在Arduino的庫中看到默認的引腳,如下圖:

圖片

圖片

UART0 引腳直接在函數里面定義了,UART1、UART2使用宏定義,大家還記得我們在GPIO章節中說的嗎,ESP32有GPIO矩陣,外設都可以隨意映射到絕大部分的引腳,比如我們想把UART2的引腳改變到GPIO26 GPIO27這兩個上,我們直接調用相關函數就行了,這些都是可以實現的,硬件上非常靈活。

U0TXD 線上需串聯 499 ? 電阻用于抑制 80 MHz 諧波。ESP32 UART 串口電路如下圖所示:

圖片

這里還需要注意下,UART1的默認引腳為GPIO9,、GPIO10,這兩個接口一般用于連接外部Flash,程序中默認使用這兩個引腳的,所以我們在用的時候一定記得改到別的IO口。

軟件

關于串口的一些概念,包括原理,波特率,停止位,奇偶校驗,流控等概念,這些概念非?;A,這里就不展開篇幅說了,需要的小伙伴自行了解,不同芯片,原理都是一樣的。

我們講一下基礎的使用:

首先我們需要在setup()中對串口進行初始化,非常簡單,就一行代碼搞定:

Serial.begin(115200);

這里默認是UART0的,將UART0波特率初始化為115200,其它參數都是默認的,如果我們想將UART0的TX RX改一下呢,我們看下面:

Serial.begin(115200,SERIAL_8N1,26,27);

通過上面的函數,我們就把RX改到了26,TX改到了27,第一個參數為波特率設置,如果輸入0就會自動監測波特率,第二個為串口配置參數,SERIAL_8N1為8位數據位,無校驗位,1位停止位的意思,還有其它參數,大家可以自行到源碼中看看,加深印象。

看到這里才體會到GPIO矩陣的妙處,硬件設計大大的簡化??!

關于串口的函數,我們這里介紹幾個常用的,完整的可以在HardwareSerial類中看到。

void begin(unsigned long baud, uint32_t config=SERIAL_8N1, int8_t rxPin=-1, int8_t txPin=-1, bool invert=false, unsigned long timeout_ms = 20000UL); //串口初始化
void end();//失能串口
void updateBaudRate(unsigned long baud);//重新設置波特率
int available(void);//返回串口接收緩沖區中的數據
int read(void);//返回串口接收緩沖區的一個字節的數據,之后將緩沖區中的本字節刪除
void flush(void);//等待串口收發數據完畢
size_t write(uint8_t);//寫數據到TX緩沖區
size_t setRxBufferSize(size_t);//設置接收緩沖區的大小

這里只是簡單展示幾個函數,具體的用法有不懂的,或者想了解全部函數的,可以在arduino-esp32中打開具體的庫看用法,只有這樣,大家才能深刻了解,老宇哥這里只是帶大家進門。

庫函數中有標準輸入輸出函數,所以打印函數必不可少的了,我們常用的打印函數如下:

Serial.print("芯片之家!"); //打印數據
Serial.println("This is a uart0 demo!"); //打印并換行

當然,也可以各種格式化打印,大家可以自行嘗試!

Serial.println(data) //從串行端口輸出數據,跟隨一個回車(ASCII 13, 或 'r')和一個換行符(ASCII 10, 或 'n')。這個函數所取得的值與 Serial.print()一樣。
Serial.println(b) //以十進制形式輸出b的ASCII編碼值,并同時跟隨一個回車和換行符。
Serial.println(b, DEC)// 以十進制形式輸出b的ASCII編碼值,并同時跟隨一個回車和換行符。
Serial.println(b, HEX) //以十六進數據形式輸出b的ASCII編碼值,并同時跟隨一個回車和換行符。
Serial.println(b, OCT)//以八進數據形式輸出b的ASCII編碼值,并同時跟隨一個回車和換行符。
Serial.println(b, BIN)//以二進數據形式輸出b的ASCII編碼值,并同時跟隨一個回車和換行符。
Serial.print(b, BYTE)//以單個字節輸出b,并同時跟隨一個回車和換行符。
Serial.println(str)//如果 str是一個字符串或數組,輸出整個 str的 ASCII編碼字符串。
Serial.println()//僅輸出一個回車和換行符。

完整程序1:

void setup()
{
  Serial.begin(115200);
}
 
void loop()
{
  Serial.print("芯片之家!"); 
  Serial.println("This is a uart0 demo!"); 
  delay(1000);
}

圖片

完整程序2:

int recData; //接收的數據
 
void setup() {
  Serial.begin(115200); 
}
 
void loop() {
  // 收到什么發什么數據
  if (Serial.available() > 0) {
    // 讀取一個字節
    recData = Serial.read();
    Serial.print("received: ");
    Serial.println(recData,HEX);
  }
}

圖片

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

    關注

    3

    文章

    400

    瀏覽量

    44678
  • 串口
    +關注

    關注

    14

    文章

    1586

    瀏覽量

    79342
  • uart
    +關注

    關注

    22

    文章

    1273

    瀏覽量

    103458
  • Arduino
    +關注

    關注

    189

    文章

    6494

    瀏覽量

    190327
  • ESP32
    +關注

    關注

    21

    文章

    1012

    瀏覽量

    18975
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    ESP32單片機學習筆記

    ESP32 單片機學習筆記 - 03 - MCPWM脈沖輸出/PCNT脈沖計數前言,繼續上一篇的內容。因為上一篇剛好實驗了iic和spi,形成一對。接下來講pwm另起一篇。一、電機PWM輸出
    發表于 08-23 08:47

    ESP32ESP-IDF學習筆記

    ESP32ESP-IDF 學習筆記(六)【I2C數據總線(I2C)】文章目錄ESP32ESP
    發表于 02-22 07:30

    ESP32 開發筆記(四)LVGL控件學習 Window 窗口控件 X

    ESP32 開發筆記(四)LVGL控件學習 Window 窗口控件 X
    發表于 11-14 09:06 ?6次下載
    <b class='flag-5'>ESP32</b> 開發<b class='flag-5'>筆記</b>(四)LVGL控件<b class='flag-5'>學習</b> Window 窗口控件 X

    ESP32ESP-IDF 教學(九)—— 串口通信(UART)

    ESP32ESP-IDF 教學(九)—— 串口通信(UART)文章目錄ESP32ESP-IDF 教學(九)——
    發表于 11-26 13:21 ?45次下載
    <b class='flag-5'>ESP32</b> 之 <b class='flag-5'>ESP</b>-IDF 教學(九)—— <b class='flag-5'>串口</b>通信(UART)

    [ESP32]學習筆記02

    [ESP32學習筆記02]使用ViusalStudio2017開發ESP32、按鍵輸入檢測前言一、安裝Visual Studio 2017二、配置開發環境1.安裝ViusalGDB2.
    發表于 12-03 17:36 ?23次下載
    [<b class='flag-5'>ESP32</b>]<b class='flag-5'>學習</b><b class='flag-5'>筆記</b>02

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

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

    [ESP32]學習筆記04

    Analog-to-Digital Converter(模數轉換器)的使用今天我們學習ESP32提供的ADC外設的使用,ESP32的每個ADC單元都支持兩種模式,單次讀取和連續讀取(DMA),本次
    發表于 12-22 19:02 ?9次下載
    [<b class='flag-5'>ESP32</b>]<b class='flag-5'>學習</b><b class='flag-5'>筆記</b>04

    SPI主線協議——ESP32學習筆記

    目錄SPI主線協議——ESP32學習筆記零、前言一、什么是SPI?二、通信過程?三、極性和相位四、總結SPI主線協議——ESP32學習
    發表于 12-22 19:23 ?18次下載
    SPI主線協議——<b class='flag-5'>ESP32</b><b class='flag-5'>學習</b><b class='flag-5'>筆記</b>

    ESP32 單片機學習筆記 - 04 - ADC和定時器

    ESP32 單片機學習筆記 - 04 - ADC和定時器一、模擬數字轉換器 ADC編程指南:Analog to Digital Converter。數據手冊: ESP32 技術參考手冊
    發表于 01-17 13:18 ?11次下載
    <b class='flag-5'>ESP32</b> 單片機<b class='flag-5'>學習</b><b class='flag-5'>筆記</b> - 04 - ADC和定時器

    ESP32芯片模組機器學習算法運行的應用

    強大的機器學習算法。 ESP32集天線開關、射頻巴倫、功率放大器、低噪聲放大器、濾波器以及電源管理模塊于一體,占用較小的PCB空間,即可最大化滿足實際應用多樣的功能需求。 使用EdgeImpulse在ESP32上運行機器
    發表于 03-15 17:23 ?1478次閱讀

    ESP32上的深度強化學習

    電子發燒友網站提供《ESP32上的深度強化學習.zip》資料免費下載
    發表于 12-27 10:31 ?0次下載
    <b class='flag-5'>ESP32</b>上的深度強化<b class='flag-5'>學習</b>

    Arduino Uno與ESP32串口通信

    電子發燒友網站提供《Arduino Uno與ESP32串口通信.zip》資料免費下載
    發表于 02-03 14:11 ?8次下載
    Arduino Uno與<b class='flag-5'>ESP32</b><b class='flag-5'>串口</b>通信

    ESP32學習筆記:雙核

    今天我們來說說ESP32 for Arduino 的雙核。
    的頭像 發表于 07-15 16:16 ?6382次閱讀
    <b class='flag-5'>ESP32</b><b class='flag-5'>學習</b><b class='flag-5'>筆記</b>:雙核

    ESP32學習筆記:WiFi

    今天我們來說說ESP32 的WiFi。
    的頭像 發表于 07-15 16:20 ?5239次閱讀
    <b class='flag-5'>ESP32</b><b class='flag-5'>學習</b><b class='flag-5'>筆記</b>:WiFi

    esp32s3使用多串口

    esp32s3使用多串口 我按照別人博客中設置串口2,串口打印有問題,因為沒有看到esp32s3 多串口
    的頭像 發表于 11-06 11:29 ?7824次閱讀
    <b class='flag-5'>esp32</b>s3使用多<b class='flag-5'>串口</b>
    主站蜘蛛池模板: hdhdhd69日本xxx| 黄色网址免费在线 | 五月婷婷在线视频观看 | 亚洲欧美网站 | 亚洲精品成人在线 | 777人体粉嫩u美图 | 四虎影院在线视频 | 国产色综合一区二区三区 | 国产精品久久久久国产精品三级 | 欧美成人aaaa免费高清 | 色综合天天综合网国产成人网 | 国模巴| 欧美黄色性 | 黄黄网址 | 奇米四色777亚洲图 奇米影视四色首页手机在线 | 国产欧美日韩综合精品无毒 | 四虎国产精品免费观看 | 久久国产乱子伦精品免费午夜 | 狠狠干夜夜骑 | 欧美在线三级 | 免费的毛片网站 | 最黄毛片 | 欧美另类网 | 国产20岁美女一级毛片 | 美女露出扒开尿口让男人桶 | 男人j进女人j的一进一出视频 | 激情五月婷婷丁香 | 精品少妇一区二区三区视频 | 色婷婷六月 | 色吧在线观看 | 日本极度另类网站 | 影音先锋在线亚洲精品推荐 | 日韩午夜片 | 日本亚洲欧美美色 | 久久综合中文字幕 | 小说老卫陈红张敏陈法蓉 | 国产精品资源网站在线观看 | 天天色天天搞 | 18黄无遮挡免费视频 | 黄在线网站 | 久久看精品 |