使用MicroPython开发ESP32(03):GPIO口使用说明

您所在的位置:网站首页 gpio0上电抖动 使用MicroPython开发ESP32(03):GPIO口使用说明

使用MicroPython开发ESP32(03):GPIO口使用说明

2023-12-09 10:27| 来源: 网络整理| 查看: 265

文章目录 目的GPIO口基础说明函数说明使用演示总结

目的

GPIO口操作是微处理器上最常用的功能,这里就对相关使用做个说明。

GPIO口基础说明

MicroPython for ESP32 GPIO主要说明如下:

可以用的IO为 0-19, 21-23, 25-27, 32-39 ;1 和 3 分别为UART0的TX和RX,即烧写和默认调试用的端口;6~11 不推荐使用,因为这几个口接了烧录程序用的flash;34~39 只能设置为输入模式,并且没有内部上拉电阻;

这个地方说明其实和官方文档有点出入,原因是使用的ESP32芯片具体型号差生的差异。这里列出的信息适用于型号为 ESP32-D0WD 的芯片。更详细的信息可以参考乐鑫官方《ESP32 技术规格书》。

题外话:请注意ESP32的IO12,这个IO口上上电时的电平会决定外部flash(存放程序的那颗)的工作电压,上电时该脚为高则认为flash工作于1.8V,为低则认为flash工作于3.3V。常用的像是Wroom-32系列模块该脚内部已下拉,即flash是工作于3.3V的,若外部电路接强上拉则可能导致模块工作异常。

函数说明

MicroPython中使用GPIO口主要是用到了 machine 模块中的 Pin 类,具体函数说明如下:

class machine.Pin(id, mode=-1, pull=-1, *, value) 构造函数,用于声明与初始化GPIO口对象: id:GPIO编号,如使用GPIO13则此处填写13; mode:模式,可选 Pin.IN 、 Pin.OUT 、 Pin.OPEN_DRAIN ; pull:使用内部上下拉电阻,可选 None 、 Pin.PULL_UP 、 Pin.PULL_DOWN ,部分IO口可以设置为 PULL_HOLD 模式,可以在深度睡眠时保持其状态; value:输出或开漏模式下端口值,0为低(off)、1为高(on);Pin.init(mode=-1, pull=-1, *, value, drive, alt) 重新初始化GPIO口;Pin.value([x]) 不填写参数使用时返回端口的值,参数填写0(False)、1(True)改变端口值;Pin.on() 输出或开漏模式下将端口设置为高;Pin.off() 输出或开漏模式下将端口设置为低;Pin.irq(handler=None, trigger=(Pin.IRQ_FALLING | Pin.IRQ_RISING), *,wake=None) 用于设置外部中断: handler:中断触发回调函数; trigger:中高端触发源可选下降沿上升沿或是一起使用; wake:使能外部中断唤醒睡眠,可设置为 WAKE_LOW 、WAKE_LOW 、 WAKE_HIGH ;

在这里插入图片描述

使用演示

使用下面代码进行测试:

# 将GPIO22和GPIO23用导线相连 from machine import Pin # 导入Pin模块 import time # 导入Time模块 p22 = Pin(22, Pin.OUT, value=0) # 初始化GPIO22 print('p22 value:%d'%p22.value()) # 打印GPIO22端口值 p23 = Pin(23, Pin.IN, Pin.PULL_DOWN) # 初始化GPIO23 print('p23 value:%d'%p23.value()) # 打印GPIO23端口值 def p23icb(self): # 中断回调函数 print('irq - p23 value:%d'%p23.value()) # 打印GPIO23端口值 p23.irq(p23icb, Pin.IRQ_RISING) # GPIO23设置上升沿触发中断 while True: time.sleep(1) print('p22 turn off') p22.off() time.sleep(1) print('p22 turn on') p22.on() # 该动作会在GPIO23上产生上升沿,触发中断

在这里插入图片描述

总结

GPIO口的使用主要就这些,更多内容可以参考下面链接: http://docs.micropython.org/en/latest/esp32/quickref.html#pins-and-gpio http://docs.micropython.org/en/latest/library/machine.Pin.html



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3