【OpenCPU】MN316-DLVD丨GPIO使用介绍

菩禔看科技 2024-04-24 00:36:40

GPIO(General-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仅支持上拉。





转载自中移物联网,仅供模组品牌对应于中移物联网模组体系参考。

声明:《菩禔物联》所发表内容均为原创,所有原创内容仅用于交流,不代表任何立场和观点。极少数优才文章注明来源的,版权归原出处所有(无法查证版权的或未注明出处的均来源于网络搜集)。如有侵权,请联系我们删除或更改。内容的真实性、准确性和合法性由原作者负责。转载内容(视频、文章、广告等)只以信息传播为目的,仅供参考,不代表本平台认同其观点和立场。

The content published in the Bodhi Union of Things is original, and all original content is for communication purposes only and does not represent any position or viewpoint. A very small number of excellent talent articles indicate their source, and the copyright belongs to the original source (those that cannot be verified or whose source is not indicated are all collected online). If there is any infringement, please contact us to delete or make changes. The authenticity, accuracy, and legality of the content are the responsibility of the original author. The reprinted content (videos, articles, advertisements, etc.) is only for the purpose of information dissemination and is for reference only. It does not mean that this platform agrees with its views and positions.

0 阅读:0

菩禔看科技

简介:感谢大家的关注