GPIO ======== 概述 -------- GPIO(General Purpose Input Ouput,通用输入输出)由引脚/功能寄存器构成,用于控制与其相连接的外设。 功能特性 -------- - 每个 GPIO 由独立寄存器控制 - 输出模式,支持开漏输出 0/1 - 输入模式,可以产生电平和上下边沿中断 - 支持三种驱动能力 - 可以同时作为输入和输出 - 包含普通 GPIO 和 AON-GPIO - 支持电平值唤醒芯片 功能说明 --------- OD 模式 ^^^^^^^^^ 当用 OD 模式输出 0 时,需要设置上拉,当用 OD 模式输出 1 时,需要设置下拉。 GPIO 编号及功能 ^^^^^^^^^^^^^^^^^^ .. only:: bbb ====== ================ ========= ====== ========== ============ ========== GPIOID 复用功能 电压 类型 冷启动状态 睡眠默认状态 热启动状态 ====== ================ ========= ====== ========== ============ ========== 00 / 1.8v/3.3v I/O PD KEEP KEEP 01 UART_TXD 1.8v/3.3v I/O PU OFF PU 02 UART_RXD 1.8v/3.3v I/O PU OFF PU 03 / 1.8v/3.3v I/O PU KEEP KEEP 04 / 1.8v/3.3v I/O PU KEEP KEEP 05 / 1.8v/3.3v I/O PD KEEP KEEP 32 / 1.8v O PU OFF PU 33 / 1.8v I/O PU KEEP KEEP 34 / 1.8v I/O PU KEEP KEEP 35 / 1.8v I/O PU KEEP KEEP 36 / 1.8v I/O PU KEEP KEEP 37 / 1.8v I/O PU KEEP KEEP 38 / 1.8v I/O PU KEEP KEEP 39 / 1.8v I/O PU KEEP KEEP 40 / 1.8v I/O PU KEEP KEEP 41 / 1.8v I/O PU KEEP KEEP 42 / 1.8v I/O PU KEEP KEEP 43 / 1.8v I/O PU KEEP KEEP 44 / 1.8v I/O PU KEEP KEEP 45 / 1.8v I/O PU KEEP KEEP 46 BOOT_MODE 1.8v I/O PD OFF PD 47 / 1.8v I/O PD KEEP KEEP 48 / 1.8v I/O PD KEEP KEEP 49 / 1.8v I/O PD KEEP KEEP 50 / 1.8v I/O PD KEEP KEEP 51 / 1.8v I/O PD KEEP KEEP 52 / 1.8v I/O PD KEEP KEEP 53 / 1.8v I/O PD KEEP KEEP 54 / 1.8v I/O PD KEEP KEEP 55 / 1.8v I/O PD KEEP KEEP 56 / 1.8v I/O PD KEEP KEEP 57 / 1.8v I/O PD KEEP KEEP 58 / 1.8v I/O PD KEEP KEEP 59 / 1.8v I/O PD KEEP KEEP 60 / 1.8v I/O PD KEEP KEEP 61 / 1.8v I/O PD KEEP KEEP 93 GPIO_A00 1.8v/3.3v I/O PU KEEP KEEP 94 GPIO_A01 1.8v/3.3v I/O PU KEEP KEEP 95 GPIO_A02 1.8v/3.3v I/O PU KEEP KEEP 96 GPIO_A03 1.8v/3.3v I/O PU KEEP KEEP 97 TK0/GPIO_A09 1.8v I PU KEEP KEEP 98 TK1/GPIO_A10 1.8v I PU KEEP KEEP 99 TK2/GPIO_A11 1.8v I PU KEEP KEEP 100 TK3/GPIO_A12 1.8v I PU KEEP KEEP 101 GPIO_A13 1.8v/3.3v I/O PD KEEP KEEP 102 GPIO_A14 1.8v/3.3v I/O PD KEEP KEEP 103 GPIO_A15 1.8v/3.3v I/O PD KEEP KEEP 104 GPIO_A16/CHARGER 1.8v I/O / CHARGER CHARGER 105 ADC0 1.8v I/O/AI PN OFF PN 106 ADC1 1.8v I/O/AI PN OFF PN 107 ADC2 1.8v I/O/AI PN OFF PN 108 ADC3 1.8v I/O/AI PN OFF PN 109 ADC4 1.8v I/O/AI PN OFF PN 110 ADC5 1.8v I/O/AI PN OFF PN ====== ================ ========= ====== ========== ============ ========== .. only:: hornet ====== ================ ========= ====== ========== ============ ========== GPIOID 复用功能 电压 类型 冷启动状态 睡眠默认状态 热启动状态 ====== ================ ========= ====== ========== ============ ========== 00 / 1.8v I/O PD KEEP KEEP 01 UART_TXD 1.8v I/O PU KEEP KEEP 02 UART_RXD 1.8v I/O PU KEEP KEEP 03 / 1.8v I/O PU KEEP KEEP 04 / 1.8v I/O PU KEEP KEEP 05 / 1.8v I/O PD KEEP KEEP 06 / 1.8v/3.3v I/O PU KEEP KEEP 07 / 1.8v/3.3v I/O PU KEEP KEEP 08 / 1.8v I/O PD KEEP KEEP 09 / 1.8v I/O PD KEEP KEEP 10 / 1.8v I/O PD KEEP KEEP 11 / 1.8v I/O PD KEEP KEEP 12 / 1.8v I/O PD KEEP KEEP 13 / 1.8v I/O PD KEEP KEEP 21 / 1.8v I/O PU KEEP KEEP 83 GPIO_A00 1.8v I/O PU KEEP KEEP 84 GPIO_A01 1.8v I/O PU KEEP KEEP 85 GPIO_A02 1.8v I/O PU KEEP KEEP 86 GPIO_A03 1.8v I/O PU KEEP KEEP 87 GPIO_A04 1.8v I/O PU KEEP KEEP 88 GPIO_A09 1.8v I PU KEEP KEEP 89 GPIO_A10 1.8v I PU KEEP KEEP 90 GPIO_A11 1.8v I PU KEEP KEEP 91 GPIO_A12 1.8v I PU KEEP KEEP 92 GPIO_A13 1.8v I/O PD KEEP KEEP 93 GPIO_A14 1.8v I/O PU KEEP KEEP 94 GPIO_A15/CHARGER 3.3v I/O / CHARGER CHARGER 95 ADC0 1.8v I/O/AI PN KEEP KEEP 96 ADC1 1.8v I/O/AI PN KEEP KEEP 97 ADC2 1.8v I/O/AI PN KEEP KEEP 98 ADC3 1.8v I/O/AI PN KEEP KEEP 99 ADC4 1.8v I/O/AI PN KEEP KEEP 100 ADC5 1.8v I/O/AI PN KEEP KEEP ====== ================ ========= ====== ========== ============ ========== 状态说明 ^^^^^^^^^^^ ========== ============================================================ 状态 说明 ========== ============================================================ 复位 出现致命软件错误或入仓充电时将产生复位 上电 芯片由掉电状态首次上电 冷启动状态 芯片上电到软件运行前io的状态 热启动状态 关机后再次开机芯片到软件运行前io的状态 睡眠 运行中的低功耗状态会反复在睡眠默认状态和软件配置状态直接切换 关机 仅保留唤醒模块运行的状态,此时所有IO进入睡眠默认状态 KEEP 指在进入睡眠状态后可保持睡眠前的状态 PU PULLUP上拉 PD PULLDOWN下拉 PN PULLNONE无上下拉,且非高阻态,此状态会漏电 ========== ============================================================ 配置说明 ^^^^^^^^^^ 通用数字 IO: - 可用于通用外设的 IO,如UART/I2C/SPI - 用作普通 GPIO 时可使用硬件去抖(debounce)模块 可复用为 UART 的 IO:默认烧录接口,上电后默认为烧录用 uart 可复用为 BOOT_MODE 的 IO: 若为高电平,则允许进入烧录模式(等待1S),否则直接启动 可复用为 AON 的 IO: - 作为普通 GPIO 使用时可用于通用外设的IO,如UART,I2C,SPI - 作为 AON_GPIO 使用时,具有低功耗及关机状态的唤醒能力 可复用为 TK 的 IO: - 数字模式仅支持GPI(输入) - 可配置为 cap touch 输入,可以用作触摸及入耳功能 电压可切换的 IO: - 普通数字 IO,将 VDD33/18_IO_TOP 引脚与 VDD33_AON/VDD18_AON 引脚相连,即可切换对应的电压 - 可复用为 AON 的 IO,将 VDD33/18_IO_AON 引脚与 VDD33_AON/VDD18_AON 引脚相连,即可切换对应的电压 用法流程 --------- - 初始化 :c:func:`wq_gpio_init` - 开关中断 :c:func:`wq_gpio_int_enable`、 :c:func:`wq_gpio_int_disable` - 设置上下拉 :c:func:`wq_gpio_set_pull_mode` - 配置并打开 :c:func:`wq_gpio_open`、 :c:func:`wq_gpio_open_as_interrupt` - 读写 :c:func:`wq_gpio_read`、 :c:func:`wq_gpio_write` - 关闭 :c:func:`wq_gpio_close` - 注销 :c:func:`wq_gpio_deinit` API 介绍 ---------- .. doxygenfile:: wq_gpio.h