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

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

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

3天內不再提示

基本GPIO輸出控制簡述

CHANBAEK ? 來源:魚香ROS ? 作者:小魚 ? 2023-07-03 10:52 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

你好,我是愛吃魚香ROS的小魚。上一節了解了MicroROS學習板的LED電路原理,最后得到結論是通過控制ESP_IO2的電平就可以控制電壓,接下來我們就嘗試利用Arduino的ESP_IO2對IO進行控制。

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

圖片

一、GPIO控制介紹

1.1 什么是GPIO

首先我們了解下GPIO(General-purpose input/output),中文名通用型之輸入輸出的簡稱。

  • 輸出模式,指GPIO是可以通過程序 控制其電壓高低 ,普通的GPIO只能輸出(低電平0V)和高電平(3.3V,有的單片機是5V)。
  • 輸入模式,指GPIO可以 讀取其上的電壓 ,普通的GPIO只能讀取低電平和高電平兩種。比如當我們想測試一個按鍵是否被按下,就可以GPIO的輸入功能。

1.2 GPIO控制API

Arduino提供了簡單易用的API來控制IO的輸入和輸出。

1.2.1 引腳模式設置-pinMode

該函數用于定義特定引腳的 GPIO 操作模式。

void pinMode(uint8_t pin, uint8_t mode);
  • pin定義 GPIO 引腳編號。
  • mode設置操作模式。

基本輸入和輸出支持以下模式:

  • INPUT將 GPIO 設置為不帶上拉或下拉(高阻抗)的輸入。
  • OUTPUT將 GPIO 設置為輸出/讀取模式。
  • INPUT_PULLDOWN 將 GPIO 設置為具有內部下拉列表的輸入。
  • INPUT_PULLUP 將 GPIO 設置為帶有內部上拉的輸入。

1.2.2 數字輸出-digitalWrite

digitalWrite用于設置被配置為OUTPUT模式的引腳電平為HIGHLOW

void digitalWrite(uint8_t pin, uint8_t val);
  • pin所設置的GPIO編號。
  • val將輸出數字狀態設置為HIGHLOW

1.2.3 數字輸入-digitalRead

digitalRead用于讀取配置為INPUT模式的給定引腳的狀態。

int digitalRead(uint8_t pin);
  • pin 所設置的GPIO編號。

此函數將返回所選引腳的邏輯狀態為 HIGHLOW。

有了上面三個函數,我們就可以編寫代碼了。

二、編寫LED閃爍代碼

新建example02_led工程,接著輸入下面的代碼。

/**
 * @file main.cpp
 * @author fishros@foxmail.com
 * @brief 使LED燈亮1s關閉1s,持續閃爍
 * @version 0.1
 * @date 2022-12-19
 *
 * @copyright Copyright (c) 2022
 *
 */
#include < Arduino.h >

void setup()
{
  // put your setup code here, to run once:
  pinMode(2, OUTPUT); // 設置2號引腳模式為OUTPUT模式
}

void loop()
{
  // put your main code here, to run repeatedly:
  digitalWrite(2, LOW);  // 低電平,打開LED燈
  delay(1000);           // 休眠1000ms
  digitalWrite(2, HIGH); // 高電平,關閉LED燈
  delay(1000);           // 休眠1000ms
}

這里我們讓LED亮1s關閉1s,持續閃爍,代碼很簡單,不再講解。

編譯下載代碼到開發板,接著觀察現象,你會發現藍色LED燈在不斷閃爍。

三、通過串口控制LED

我們繼續更新下工程代碼,實現通過串口指令來控制LED的亮滅。

#include < Arduino.h >

void setup()
{
  Serial.begin(115200);
  pinMode(2, OUTPUT); // 設置2號引腳模式為OUTPUT模式
}

void loop()
{
  // LED串口控制代碼
  if (Serial.available())
  {
    String command = Serial.readString();
    if (command == "on")
    {
      digitalWrite(2, LOW); // 低電平,打開LED燈
    }
    else if (command == "off")
    {

      digitalWrite(2, HIGH); // 高電平,關閉LED燈
    }
  }

  /* // LED閃爍代碼
    digitalWrite(2, LOW);  // 低電平,打開LED燈
    delay(1000);           // 休眠1000ms
    digitalWrite(2, HIGH); // 高電平,關閉LED燈
    delay(1000);           // 休眠1000ms
  */
}

通過串口讀取指令,收到on則打開LED,收到off關閉LED。

將代碼下載到開發板,接著打開串口監視器,輸入指令進行測試。

圖片

四、總結

至此,我們成功完成了點燈,掌握了基本的GPIO輸出控制,下一節我們嘗試使用按鍵輸入來控制LED燈。

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

    關注

    242

    文章

    23843

    瀏覽量

    674041
  • 輸入輸出
    +關注

    關注

    0

    文章

    42

    瀏覽量

    10897
  • GPIO
    +關注

    關注

    16

    文章

    1280

    瀏覽量

    54088
  • Arduino
    +關注

    關注

    190

    文章

    6498

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    介紹DSP28335的GPIO輸出高低電平功能

    GPIO(General Purpose Intput Oytput)是通用輸入輸出端口的簡稱,可以通過軟件來控制其輸入和輸出
    發表于 07-07 17:21 ?1w次閱讀
    介紹DSP28335的<b class='flag-5'>GPIO</b>的<b class='flag-5'>輸出</b>高低電平功能

    快速搞懂GPIO控制器的六種模式

    在嵌入式系統和單片機開發中,GPIO(通用輸入輸出控制器是一個非常重要的組件。GPIO引腳的靈活性使它們能夠執行多種功能,從簡單的輸入輸出
    的頭像 發表于 05-18 08:04 ?2099次閱讀
    快速搞懂<b class='flag-5'>GPIO</b><b class='flag-5'>控制</b>器的六種模式

    GPIO輸出--蜂鳴器

    程序簡介 -工程名稱:GPIO輸出--蜂鳴器 -實驗平臺: 秉火STM32 F429 開發板 -MDK版本:5.16 -ST固件庫版本:1.5.1 【 !】功能簡介: 控制開發板上的蜂鳴器(有源
    發表于 12-12 19:02 ?4次下載

    STM32的GPIO輸出編程實例之點亮三色LED

    本實驗通過STM32的三個GPIO口驅動三色LED的三個通道,將GPIO設置為推挽輸出模式,采用灌電流的方式與LED連接,GPIO輸出高電平
    的頭像 發表于 02-07 11:14 ?2.9w次閱讀
    STM32的<b class='flag-5'>GPIO</b><b class='flag-5'>輸出</b>編程實例之點亮三色LED

    CC2530 GPIO輸出控制-控制Led亮滅實驗資料下載

    CC2530 GPIO輸出控制-控制Led亮滅實驗資料下載
    發表于 05-03 09:47 ?1次下載

    CC2530的GPIO輸出控制-Led閃爍、流水燈實驗資料下載

    CC2530的GPIO輸出控制-Led閃爍、流水燈實驗資料下載
    發表于 05-03 09:42 ?6次下載

    使用 RPi.GPIO 模塊的輸出(Output)功能

    , GPIO.OUT)2、設置某個輸出針腳狀態為高電平:12345GPIO.output(12, GPIO.HIGH)?# 或者GPIO.o
    發表于 04-02 14:42 ?1072次閱讀

    二.GPIO輸入輸出及延遲函數

    一. GPIO八種模式,四種輸入,四種輸出1.GPIO輸入初始化void GPIO_Config(void){ GPIO_InitTypeD
    發表于 11-24 20:06 ?1次下載
    二.<b class='flag-5'>GPIO</b>輸入<b class='flag-5'>輸出</b>及延遲函數

    04、STM8通用輸入輸出口(GPIO)

    04、STM8通用輸入輸出口(GPIO)文章目錄04、STM8通用輸入輸出口(GPIO)1、概述2、GPIO主要功能3、I/O 的配置和使用
    發表于 11-26 15:21 ?9次下載
    04、STM8通用輸入<b class='flag-5'>輸出</b>口(<b class='flag-5'>GPIO</b>)

    STM32的8種GPIO輸入輸出模式

    STM32的8種GPIO輸入輸出模式參考文章“STM32的8種GPIO輸入輸出模式深入詳解”和“STM32中GPIO的8種工作模式!”輸入模
    發表于 11-26 17:06 ?16次下載
    STM32的8種<b class='flag-5'>GPIO</b>輸入<b class='flag-5'>輸出</b>模式

    GPIO通用輸入輸出

    GPIO通用輸入輸出一、GPIO的功能概述用途:GPIO是通用輸入輸出(General Purpose I/O)的簡稱,主要用于工業現場需要
    發表于 12-20 18:58 ?6次下載
    <b class='flag-5'>GPIO</b>通用輸入<b class='flag-5'>輸出</b>

    USB音頻輸入/輸出控制器DP108簡述和特征

    USB音頻輸入/輸出控制器DP108 簡述和特征
    發表于 10-26 18:01 ?2006次閱讀

    通用輸入輸出GPIO是什么

    GPIO代表通用輸入/輸出。它是集成電路上的一種引腳,沒有特定功能。雖然大多數引腳都有專用用途,例如向特定組件發送信號,但 GPIO 引腳的功能是可定制的,并且可以由軟件控制。 引腳模
    發表于 03-23 14:04 ?1667次閱讀
    通用輸入<b class='flag-5'>輸出</b><b class='flag-5'>GPIO</b>是什么

    GPIO配置不同輸出速度會有什么影響

    單片機GPIO配置不同輸出速度有何區別?
    的頭像 發表于 09-18 15:43 ?2574次閱讀
    <b class='flag-5'>GPIO</b>配置不同<b class='flag-5'>輸出</b>速度會有什么影響

    GPIO錯誤排查與解決

    在嵌入式系統和微控制器編程中,通用輸入輸出GPIO)是最常見的接口之一。然而,在使用GPIO時,我們可能會遇到各種錯誤。 1. 理解GPIO
    的頭像 發表于 01-09 09:46 ?2316次閱讀