MN316 OpenCPU丨GPIO使用介绍

GPIOGeneral-purpose input/output通用输入/输出端口的简称,通俗的说,就是可以控制GPIO引脚输出高/低电平,并读取输入引脚的电平状态。用户可以利用GPIO实现和外设硬件进行数据交互、控制硬件工作、读取硬件工作状态等功能。本文从使用流程接口解析demo代码解析及注意事项四个方面介绍GPIO使用方法

  • GPIO使用流程解析

以下流程图为使用MN316 OpenCPU SDK GPIO功能时的常见流程及相关函数接口介绍。

1 GPIO接口函数使用流程

在MN316模组的OpenCPU中,GPIO支持配置为输入模式、输出模式和中断模式。

(1) 当设置为输入模式时,配置为上拉还是下拉需要看外部输入的电平情况,如果默认输入是低电平,那么最好配置为下拉;反之为上拉。需注意,MN316模组GPIO0、GPIO5、GPIO14仅支持下拉,其余GPIO仅支持上拉,需结合需求选择对应引脚使用。

(2) SDK中能使用的GPIO有17个,模组硬件引脚号和GPIO号对应关系如表1。对应关系可能会随SDK版本更新变化,以对应版本的《MN316_OpenCPU资源综述》为准。

MN316_OpenCPU(R14)_Standard_1.2.0版GPIO对应关系

SDK GPIO号

MN316模组引脚号

原引脚名

GPIO_0

34

GPIO0

GPIO_1

35

GPIO1

GPIO_2

7

UART2_TXD

GPIO_3

8

UART2_RXD

GPIO_4

11

GPIO4

GPIO_5

16

GPIO5

GPIO_6

3

SPI_SS

GPIO_7

4

SPI_MISO

GPIO_8

5

SPI_MOSI

GPIO_9

6

SPI_SCLK

GPIO_10

36

IIC_SCL

GPIO_11

37

IIC_SDA

GPIO_12

39

UART1_TXD

GPIO_13

40

UART1_RXD

GPIO_14

21

STATE

GPIO_15

9

UART0_TXD

GPIO_16

10

UART0_RXD

1 GPIO口和模组引脚对应关系

  • GPIO 接口代码解析

2.1 GPIO初始化配置函数接口

2 初始化GPIO函数

3 初始化函数配置

(1)该函数用于初始化GPIO,其中结构体指针cm_gpio_cfg_t *cfg指向的结构体具体定义见图3;

(2)需注意GPIO 0\5\14仅支持下拉,其他GPIO仅支持上拉,初始化时需根据具体GPIO配置GPIO上下拉模式。

2.2 GPIO去初始化配置函数接口

4 去初始化GPIO函数

注意使用完GPIO后需要去初始化,方便下次使用。

2.3 配置GPIO输出电平函数接口

5 配置GPIO输出电平

6 电平配置参数

该函数用于配置模组的输出电平,设置GPIO号和输出电平即可,输出电平配置如图6所示。

2.4 读取GPIO输入电平函数接口

7 读取GPIO输入电平函数

通过此函数接口读取GPIO电平值。

2.5 设置GPIO上/下拉函数接口

8 设置上/下拉函数

9 /下拉具体配置说明

该函数接口用于设置GPIO上拉、下拉状态,可配置参数如图8所示。

2.6 I/O方向模式配置函数接口

10 IO方向模式配置函数

11 IO模式配置说明

该函数接口用于设置GPIO方向模式,可配置参数如图9所示。

2.7 GPIO注册中断回调函数接口

12 IO模式配置说明

使用中断功能需要先通过此函数注册。

2.8 GPIO使能中断函数接口

13 使能中断函数

14 中断配置参数说明

该函数用于配置GPIO中断触发方式,可配置参数如图11所示。

2.9 GPIO失能中断函数接口

15 失能中断函数

该函数用于取消中断使能,填入GPIO号即可。

  • GPIO demo代码解析

3.1 设置GPIO为上拉输入,并读取GPIO状态:

16 配置上拉输入demo示例

3.2 设置GPIO为上拉输出,并输出高、低电平:

17 配置输出高低电平demo示例

3.3 设置GPIO双边沿触发中断模式

18 配置双边沿触发中断demo示例

  • 注意事项

1、AT硬件设计手册标注的GPIO顺序可能和SDK定义不同,应以《MN316_OpenCPU资源综述》文档描述为准;

2、注意GPIO开机状态,比如GPIO作为指示灯等用途时,GPIO的开机状态可能会影响指示灯的闪烁情况;

3、使用前设置引脚复用情况,复用引脚时需关注目标引脚是否已被复用为其他功能;

4、同一时刻仅一个外部GPIO可中断触发源;

5、GPIO0、GPIO5、GPIO14仅支持下拉,其余GPIO仅支持上拉。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值