当前位置: 首页 > wzjs >正文

网站开发环境与工具免费网站建设ppt模板

网站开发环境与工具,免费网站建设ppt模板,高校网站建设重要作用,app开发与制作公司1 背景介绍 GPIO(General Purpose Input/Output) ——通用输入输出口,就是能由软件自由控制输入(接收外界信号)或输出(发出电平信号)的引脚。 ESP32 最核心的功能之一,能被用来控制…

1 背景介绍

GPIO(General Purpose Input/Output) ——通用输入输出口,就是能由软件自由控制输入(接收外界信号)或输出(发出电平信号)的引脚。

ESP32 最核心的功能之一,能被用来控制、连接、读取各种外设,比如按键、LED、传感器、继电器、屏幕等。

ESP32 有多达 39 个 GPIO 引脚,编号为 GPIO0 ~ GPIO39,不过并不是每一个都可以任意使用。

在这里插入图片描述

1.1 基本特性

在这里插入图片描述

1.2 不建议使用GPIO口

在这里插入图片描述

1.3 常用设置

在这里插入图片描述

1.3 IO Matrix(IOMUX)

ESP32每个引脚都可以通过IO Matrix(IOMUX)将其映射为某种外设功能,比如 UART、PWM、SPI等。这意味着你可以自由地分配功能到引脚,非常灵活!你可以把 I2C 的 SDA/SCL 分别映射到 GPIO21 和 GPIO22,也可以换成 GPIO18 和 GPIO19,只要代码里配置对应即可。

1.4 总结

ESP32 的 GPIO 功能非常强大、灵活。

要注意某些 GPIO 的启动限制或输入输出限制。

使用前建议查 ESP32 的 datasheet 或 IO 使用图。

可以结合中断、PWM、ADC、DAC、外设等,组成丰富的控制/采集系

2 案例展示

ESP-IDF里操作 GPIO,一般按这几个步骤:

  1. 配置 GPIO(方向/上拉/下拉/中断触发条件)

  2. 读输入 / 写输出

  3. (可选)注册中断回调

2.1 输出模式-控制led灯

#include "driver/gpio.h"#define LED_GPIO_PIN 2  // GPIO2接LEDvoid app_main(void)
{gpio_reset_pin(LED_GPIO_PIN);gpio_set_direction(LED_GPIO_PIN, GPIO_MODE_OUTPUT);while (1) {gpio_set_level(LED_GPIO_PIN, 1); // 点亮LEDvTaskDelay(pdMS_TO_TICKS(500));gpio_set_level(LED_GPIO_PIN, 0); // 熄灭LEDvTaskDelay(pdMS_TO_TICKS(500));}
}

2.2 读入按键

#include "driver/gpio.h"#define BUTTON_GPIO_PIN 0  // GPIO0接按钮void app_main(void)
{gpio_reset_pin(BUTTON_GPIO_PIN);gpio_set_direction(BUTTON_GPIO_PIN, GPIO_MODE_INPUT);gpio_pullup_en(BUTTON_GPIO_PIN); // 开启上拉,避免悬空抖动while (1) {int button_level = gpio_get_level(BUTTON_GPIO_PIN);if (button_level == 0) {printf("Button Pressed!\n");}vTaskDelay(pdMS_TO_TICKS(100));}
}

3 总结

在这里插入图片描述
正常开发推荐使用 GPIO 2, 4, 5, 18, 19, 21, 22, 23, 25, 26, 27, 32, 33 这些口,比较安全

4 中断

4.1 工作模式

ESP32支持在GPIO上检测:

  1. 上升沿触发(低 → 高)

  2. 下降沿触发(高 → 低)

  3. 任意电平触发(高电平/低电平)

  4. 双边沿触发(上升+下降)

⚡ 触发时,会调用一个中断回调函数(ISR Handler),可以马上做反应,比如读取按键状态!

在这里插入图片描述

4.2 设置流程

在这里插入图片描述

4.3 案例

用 GPIO0 按钮触发中断,点亮/熄灭LED(GPIO2)

#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
#include "esp_log.h"#define BUTTON_GPIO GPIO_NUM_0
#define LED_GPIO    GPIO_NUM_2static const char *TAG = "GPIO_ISR";volatile int led_state = 0; // 注意 volatile,ISR中会修改!// 中断回调函数(一定要短小!)
static void IRAM_ATTR gpio_isr_handler(void* arg)
{led_state = !led_state; // 翻转LED状态gpio_set_level(LED_GPIO, led_state);
}void app_main(void)
{// 配置LED引脚gpio_reset_pin(LED_GPIO);gpio_set_direction(LED_GPIO, GPIO_MODE_OUTPUT);// 配置按钮引脚gpio_reset_pin(BUTTON_GPIO);gpio_set_direction(BUTTON_GPIO, GPIO_MODE_INPUT);gpio_pullup_en(BUTTON_GPIO); // 开启上拉,避免悬空gpio_set_intr_type(BUTTON_GPIO, GPIO_INTR_NEGEDGE); // 配置下降沿中断(按下)// 安装中断服务gpio_install_isr_service(0); // 参数是flag,一般填0gpio_isr_handler_add(BUTTON_GPIO, gpio_isr_handler, NULL); // 绑定回调函数ESP_LOGI(TAG, "Setup complete, waiting for button interrupt...");// 主循环啥也不用做while (1) {vTaskDelay(pdMS_TO_TICKS(1000));}
}

4.4 总结

按键中断常用下降沿(NEGEDGE)。

中断回调要短小、快速,不能长时间占用CPU。

可以通过信号量或消息队列,把中断事件传给主任务中慢慢处理


文章转载自:

http://AWrF6qCx.xssbt.cn
http://yuG85l3V.xssbt.cn
http://sxcTR88K.xssbt.cn
http://cyIyjVVR.xssbt.cn
http://o0QjBIK8.xssbt.cn
http://7d9zdDwd.xssbt.cn
http://nz82uz4d.xssbt.cn
http://vrluJfK5.xssbt.cn
http://Eua2Jchb.xssbt.cn
http://P0hXtOyh.xssbt.cn
http://Srwr5MbT.xssbt.cn
http://BSyXN5M9.xssbt.cn
http://vHIDKXSD.xssbt.cn
http://NIRfZwxw.xssbt.cn
http://FUhVRTgA.xssbt.cn
http://iaUXznQA.xssbt.cn
http://vqGL9Odu.xssbt.cn
http://jCWXLVNb.xssbt.cn
http://U7q3fDZT.xssbt.cn
http://ReARhkda.xssbt.cn
http://v4mmPUqg.xssbt.cn
http://GzgH5Zqt.xssbt.cn
http://cTlkryg6.xssbt.cn
http://rXWvIAIW.xssbt.cn
http://UJIoOVDS.xssbt.cn
http://xwJij6Ic.xssbt.cn
http://37LAuyYW.xssbt.cn
http://SiMHqCHX.xssbt.cn
http://hWix9j08.xssbt.cn
http://oSgGU4R0.xssbt.cn
http://www.dtcms.com/wzjs/757181.html

相关文章:

  • 中国建设银行官方网站2018年年报辽宁省建设厅科技中心网站
  • 怎么做卖卷网站正保建设工程教育网官网
  • 黄石市下陆区建设管理局网站建站行业乱象完整版
  • 网站的404如何做wordpress中文采集插件
  • 网站功能开发水果网站建设的策划书
  • 可信网站标识宁波创建网站
  • 网站安全证书有问题如何解决怎么样注册自己的网站
  • 孝感网站建设 付款方式 银行中职示范校建设验收网站
  • 电话网站域名到期制作网站培训
  • 南宁网站建设王道下拉強wordpress注册公众号
  • 长沙口碑最好网站建设公司排行榜网站导航作用
  • 网站推广策划公司网站建设与管理就业方向
  • 烫画图案设计网站企业网站上线
  • 深圳手机模板建站怎么做会员自动售卡网站
  • 做网站需要懂什么接广告赚钱的平台
  • 药品和医疗器械网站icp备案前置审批流程wordpress wp rss
  • 做淘客网站要什么样服务器成都建设诚信网站
  • 自学网站开发需要多久建一个c2c网站要多少钱
  • 浙江百度推广高手优化网站
  • h5网站建设h网站栏目设计怎么写
  • 仿网站上的焦点图湖北建设厅网站怎么打不开
  • 怎么开个网站wordpress删除无分类文章
  • 门户网站首页设计网站开发管理系统有哪些
  • 西安网站建设开发制作wap站是什么意思啊
  • 电子商城网站的设计与实现太原市住房和城乡建设部网站
  • 企业网站服务器租用广州企业网站建设方案
  • 淘宝找做网站福州seo排名优化
  • 洛阳高新区做网站公司网站卡片设计
  • 网站建设从哪入手wordpress自定义链接不能用
  • 建立网站的主要流程有哪些步骤怎样开个人网站