99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基本GPIO輸出控制簡(jiǎn)述

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

掃碼添加小助手

加入工程師交流群

你好,我是愛(ài)吃魚香ROS的小魚。上一節(jié)了解了MicroROS學(xué)習(xí)板的LED電路原理,最后得到結(jié)論是通過(guò)控制ESP_IO2的電平就可以控制電壓,接下來(lái)我們就嘗試?yán)?a target="_blank">Arduino的ESP_IO2對(duì)IO進(jìn)行控制。

教程所使用硬件平臺(tái)為MicroROS學(xué)習(xí)板V1.0.0,可點(diǎn)擊閱讀原文購(gòu)買及查看詳情

圖片

一、GPIO控制介紹

1.1 什么是GPIO

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

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

1.2 GPIO控制API

Arduino提供了簡(jiǎn)單易用的API來(lái)控制IO的輸入和輸出。

1.2.1 引腳模式設(shè)置-pinMode

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

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

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

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

1.2.2 數(shù)字輸出-digitalWrite

digitalWrite用于設(shè)置被配置為OUTPUT模式的引腳電平為HIGHLOW。

void digitalWrite(uint8_t pin, uint8_t val);
  • pin所設(shè)置的GPIO編號(hào)。
  • val將輸出數(shù)字狀態(tài)設(shè)置為HIGHLOW 。

1.2.3 數(shù)字輸入-digitalRead

digitalRead用于讀取配置為INPUT模式的給定引腳的狀態(tài)。

int digitalRead(uint8_t pin);
  • pin 所設(shè)置的GPIO編號(hào)。

此函數(shù)將返回所選引腳的邏輯狀態(tài)為 HIGHLOW。

有了上面三個(gè)函數(shù),我們就可以編寫代碼了。

二、編寫LED閃爍代碼

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

/**
 * @file main.cpp
 * @author fishros@foxmail.com
 * @brief 使LED燈亮1s關(guān)閉1s,持續(xù)閃爍
 * @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); // 設(shè)置2號(hào)引腳模式為OUTPUT模式
}

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

這里我們讓LED亮1s關(guān)閉1s,持續(xù)閃爍,代碼很簡(jiǎn)單,不再講解。

編譯下載代碼到開(kāi)發(fā)板,接著觀察現(xiàn)象,你會(huì)發(fā)現(xiàn)藍(lán)色LED燈在不斷閃爍。

三、通過(guò)串口控制LED

我們繼續(xù)更新下工程代碼,實(shí)現(xiàn)通過(guò)串口指令來(lái)控制LED的亮滅。

#include < Arduino.h >

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

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

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

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

通過(guò)串口讀取指令,收到on則打開(kāi)LED,收到off關(guān)閉LED。

將代碼下載到開(kāi)發(fā)板,接著打開(kāi)串口監(jiān)視器,輸入指令進(jìn)行測(cè)試。

圖片

四、總結(jié)

至此,我們成功完成了點(diǎn)燈,掌握了基本的GPIO輸出控制,下一節(jié)我們嘗試使用按鍵輸入來(lái)控制LED燈。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • led
    led
    +關(guān)注

    關(guān)注

    242

    文章

    23848

    瀏覽量

    674303
  • 輸入輸出
    +關(guān)注

    關(guān)注

    0

    文章

    42

    瀏覽量

    10899
  • GPIO
    +關(guān)注

    關(guān)注

    16

    文章

    1280

    瀏覽量

    54130
  • Arduino
    +關(guān)注

    關(guān)注

    190

    文章

    6498

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

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

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

    GPIO輸出--蜂鳴器

    程序簡(jiǎn)介 -工程名稱:GPIO輸出--蜂鳴器 -實(shí)驗(yàn)平臺(tái): 秉火STM32 F429 開(kāi)發(fā)板 -MDK版本:5.16 -ST固件庫(kù)版本:1.5.1 【 !】功能簡(jiǎn)介: 控制開(kāi)發(fā)板上的蜂鳴器(有源
    發(fā)表于 12-12 19:02 ?4次下載

    STM32的GPIO輸出編程實(shí)例之點(diǎn)亮三色LED

    本實(shí)驗(yàn)通過(guò)STM32的三個(gè)GPIO口驅(qū)動(dòng)三色LED的三個(gè)通道,將GPIO設(shè)置為推挽輸出模式,采用灌電流的方式與LED連接,GPIO輸出高電平
    的頭像 發(fā)表于 02-07 11:14 ?2.9w次閱讀
    STM32的<b class='flag-5'>GPIO</b><b class='flag-5'>輸出</b>編程實(shí)例之點(diǎn)亮三色LED

    CC2530 GPIO輸出控制-控制Led亮滅實(shí)驗(yàn)資料下載

    CC2530 GPIO輸出控制-控制Led亮滅實(shí)驗(yàn)資料下載
    發(fā)表于 05-03 09:47 ?1次下載

    CC2530的GPIO輸出控制-Led閃爍、流水燈實(shí)驗(yàn)資料下載

    CC2530的GPIO輸出控制-Led閃爍、流水燈實(shí)驗(yàn)資料下載
    發(fā)表于 05-03 09:42 ?6次下載

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

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

    二.GPIO輸入輸出及延遲函數(shù)

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

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

    04、STM8通用輸入輸出口(GPIO)文章目錄04、STM8通用輸入輸出口(GPIO)1、概述2、GPIO主要功能3、I/O 的配置和使用
    發(fā)表于 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種工作模式!”輸入模
    發(fā)表于 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)的簡(jiǎn)稱,主要用于工業(yè)現(xiàn)場(chǎng)需要
    發(fā)表于 12-20 18:58 ?6次下載
    <b class='flag-5'>GPIO</b>通用輸入<b class='flag-5'>輸出</b>

    USB音頻輸入/輸出控制器DP108簡(jiǎn)述和特征

    USB音頻輸入/輸出控制器DP108 簡(jiǎn)述和特征
    發(fā)表于 10-26 18:01 ?2015次閱讀

    通用輸入輸出GPIO是什么

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

    GPIO配置不同輸出速度會(huì)有什么影響

    單片機(jī)GPIO配置不同輸出速度有何區(qū)別?
    的頭像 發(fā)表于 09-18 15:43 ?2582次閱讀
    <b class='flag-5'>GPIO</b>配置不同<b class='flag-5'>輸出</b>速度會(huì)有什么影響

    GPIO使用教程 GPIO接口應(yīng)用

    GPIO(General-Purpose Input/Output,通用輸入/輸出)接口是電子設(shè)備中的一個(gè)重要組成部分,主要用于控制和讀取設(shè)備的數(shù)字信號(hào)。它通過(guò)簡(jiǎn)單的高(1)或低(0)電平來(lái)與系統(tǒng)
    的頭像 發(fā)表于 01-31 10:10 ?3385次閱讀

    GPIO錯(cuò)誤排查與解決

    在嵌入式系統(tǒng)和微控制器編程中,通用輸入輸出GPIO)是最常見(jiàn)的接口之一。然而,在使用GPIO時(shí),我們可能會(huì)遇到各種錯(cuò)誤。 1. 理解GPIO
    的頭像 發(fā)表于 01-09 09:46 ?2337次閱讀