打印
[MM32硬件]

初识灵动微MM32 GPIO

[复制链接]
5122|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
qcliu|  楼主 | 2021-6-7 20:14 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
GPIO英文全称General-PurposeInput/OutputPorts,中文意思是通用I/O端口。由于MCU的通信外设接口众多,不可能每一外设固定一组GPIO,在MCU微控制器中,可通过软件运行期间能够动态配置和控制的引脚的状态,所以每个GPIO口除了通用输入输出功能外,还可能有其它复用功能。

在灵动微MM32L0产品中,每个GPIO端口有两个32位配置寄存器(GPIOx_CRL,GPIOx_CRH),两个32位数据寄存器(GPIOx_IDR和GPIOx_ODR),一个32位置位/复位寄存器(GPIOx_BSRR),一个16位复位寄存器(GPIOx_BRR)、一个32位锁定寄存器(GPIOx_LCKR)和两个复用功能选择寄存器(GPIOx_AFRH)和(GPIOx_AFRL)。

GPIO端口的每个位可以由软件分别配置成多种模式。
-输入浮空
-输入上拉
-输入下拉
-模拟输入
-开漏输出
-推挽式输出
-推挽式复用功能
-开漏复用功能

每个I/O端口可以自由编程,然而必须按照32位字访问I/O端口寄存器(不允许半字或字节访问)。GPIOx_BSRR和GPIOx_BRR寄存器允许对任何GPIO寄存器进行读/更改的独立访问;这样在读更改访问之间产生IRQ不会发生危险。

图1.I/O端口位的基本结构

1、输入浮空详解:
浮空(floating)就是逻辑器件的输入引脚既不接高电平,也不接低电平。一般实际运用时,引脚不建议悬空,易受干扰。

2、输入上拉\下拉详解:
上拉就是把电位拉高,比如拉到Vcc。上拉就是将不确定的信号通过一个电阻拉在高电平!弱强只是上拉电阻的阻值不同,没有什么严格区分。在MM32L0xxx中该上拉电阻位40k欧姆。

3、模拟输入详解:
模拟输入是指模拟信号的输入。配置模拟输入时,所有的上拉、下拉电阻和施密特触发器,均处于禁止状态,因此“输入数据寄存器”将不能反映端口上的电平状态,也就是说模拟输入配置下,CPU不能在“输入数据寄存器”上读到有效的数据。

4、开漏输出详解:
输出端相当于三极管的集电极,对输入数据寄存器的访问可得到I/O状态。可以做不同电压信号转换;多个同时级联还可以实现线与逻辑)。

5、推挽式输出详解:
可以输出高,低电平,连接数字器件;推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止。高低电平由IC的电源决定。

6、复用功能详解:
可以理解为GPIO口被用作第二功能时的配置情况(即并非作为通用IO口使用)。端口必须配置成复用功能输出模式(推挽或开漏)。


使用特权

评论回复
沙发
jcky001| | 2021-6-8 14:46 | 只看该作者
了解一下,很棒的知识贴

使用特权

评论回复
板凳
cr315| | 2021-6-8 14:49 | 只看该作者
温习一下

使用特权

评论回复
地板
单片小菜| | 2021-6-8 16:39 | 只看该作者
这个和别的单片机有什么区别吗?

使用特权

评论回复
5
便携手到老| | 2021-6-8 17:15 | 只看该作者
基础贴,确实不错的,夯实基础。

使用特权

评论回复
6
自己造声卡| | 2021-6-9 12:18 | 只看该作者
这个是基础贴,太重要了,感谢楼主的分享,不错的。

使用特权

评论回复
7
黑心单片机| | 2021-6-10 15:35 | 只看该作者
以专业的术语详细描述,通俗来讲就是GPIO就像人手一样,可以推(输出)拉(输入)

使用特权

评论回复
8
littlelida| | 2021-6-16 10:32 | 只看该作者
一般都是 用开漏输出

使用特权

评论回复
9
foxsbig| | 2021-7-16 15:46 | 只看该作者
谁家的差不多都是这几种模式吧

使用特权

评论回复
10
两只袜子| | 2021-7-16 16:40 | 只看该作者
模式都是大同小异吧

使用特权

评论回复
11
里面有晴雨| | 2021-7-17 08:54 | 只看该作者
这个确实是一个很棒的知识贴,没有办法的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

62

主题

3315

帖子

4

粉丝