当前文档为 本地版本 (v0.1.0)，您可以访问当前页面的 在线版本 以获取最近可能的更新。

# GPIO

## 1 功能概述

本例程演示演示 GPIO Driver 的基本功能与使用方法。

## 2 环境准备

- 硬件设备与线材：

  - PAN271x EVB 核心板与底板各一块

  - JLink 仿真器（用于烧录例程程序）

  - USB-TypeC 线一条（用于底板供电和查看串口打印 Log）

  - 杜邦线数根或跳线帽数个（用于连接各个硬件设备）

- 硬件接线：

  - 将 EVB 核心板插到底板上

  - 使用 USB-TypeC 线，将 PC USB 插口与 EVB 底板 USB->UART 插口相连

  - 使用杜邦线或跳线帽将 EVB 底板 `J8` 排针对 (P06 & TXD) 和 `J9` 排针对 (P05 & RXD) 分别短接起来

  - 使用杜邦线将 JLink 仿真器的：

    - SWD_CLK 引脚与 EVB 底板的 P00 排针相连

    - SWD_DAT 引脚与 EVB 底板的 P01 排针相连

    - SWD_GND 引脚与 EVB 底板的 GND 排针相连

  - 使用杜邦线将验证IO P02连接P12，P17连接P20

- PC 软件:

  - 串口调试助手（UartAssist）或终端工具（SecureCRT），波特率 115200（用于串口交互）

## 3 编译和烧录

例程位置：`<PAN271x-DK>\01_SDK\samples\drivers\gpio`

双击 Keil Project 文件打开工程进行编译烧录。

## 4 例程演示说明

1. 烧录完成后，芯片会通过串口打印初始化 Log：

       CPU @ 48000000Hz
       +------------------------------------------------------------------------------+
       |                      PAN271X GPIO Sample Code.                               |
       +------------------------------------------------------------------------------+
       |    Press key to start specific testcase:                                     |
       |    Input '1'    Testcase 1: Push-pull Mode Test.                             |
       |    Input '2'    Testcase 2: Open-drain Mode Test.                            |
       |    Input '3'    Testcase 3: Quasi-bidirectional Mode Test.                   |
       |    Input '4'    Testcase 4: Debounce Test.                                   |
       |    Input '5'    Testcase 5: Interrupt Test.                                  |
       +------------------------------------------------------------------------------+
       |    Board Pin Connection Scheme:                                              |
       |      [Group1]                [Group2]                                        |
       |      P02       <---->        P12                                             |
       |      P17       <---->        P20                                             |
       +------------------------------------------------------------------------------+

2. 串口输入字符‘1’，Gpio Push-Pull功能，每组IO先设输出后输入，确保每个IO功能正常，输出结果。

       GPIO Test OK, Success case: 0, Success Pin: P02
       GPIO Test OK, Success case: 0, Success Pin: P12
       GPIO Test OK, Success case: 0, Success Pin: P17
       GPIO Test OK, Success case: 0, Success Pin: P20

3. 串口输入字符‘2’，Gpio Open-Drain功能，每组IO先设输出后输入，确保每个IO功能正常，输出结果（同第二点）。

4. 串口输入字符‘3’，Gpio Quasi-Bidirectional功能，每组IO先设输出后输入，确保每个IO功能正常，输出结果（同第二点）。

5. 串口输入字符‘4’，Gpio Debounce功能，Gpio设置上升沿中断，debouce时间为64个HCLK，软件模拟抖动波形，中断触发条件为电平从低至高并维持高128个HCLK（稳定触发），从低至高并维持高64~128 HCLK区间有可能触发中断，也有可能不触发，这取决于边沿变化与Debouce Sample CLK的相位，Debouce Sample CLK刚过发生边沿变化，那么判定高需要约2个Debouce Sample CLK，边沿变化后Debouce Sample CLK 马上采集，那么判定高只需要约1个Debouce Sample CLK。

       Debounce Period - 64 Cycles HCLK
       P0_2 INT occurred, type: GPIO_INT_RISING.
       Debounce Period - 128 Cycles HCLK
       GPIO Test OK, Success case: 3, Success Pin: P02
       ...

6. 串口输入字符‘5’，Gpio Interrupt功能，软件模拟电平变化，IO的所有中断类型均能正常触发。

       P0_2 INT occurred, type: GPIO_INT_RISING.
       P0_2 INT occurred, type: GPIO_INT_FALLING.
       P0_2 INT occurred, type: GPIO_INT_BOTH_EDGE.
       P0_2 INT occurred, type: GPIO_INT_BOTH_EDGE.
       P0_2 INT occurred, type: GPIO_INT_HIGH.
       P0_2 INT occurred, type: GPIO_INT_LOW.
       GPIO Test OK, Success case: 4, Success Pin: P02
       ...

## 5 RAM/Otp资源使用情况

- Otp Size: 6.71kB

- RAM Size: 0.77kB

版本选择及下载 v: 0.1.0

版本选择
  latest
  0.1.0

下载
  PAN271x 开发套件文档（PDF）

相关链接
  PAN271x 系列产品 WIKI
  PAN271x 系列产品技术论坛
  上海磐启微电子有限公司