无线电爱好网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

【MM32F0140】开发之 GPIO (上)

2022-10-27 09:23| 发布者: 闪电| 查看: 1| 评论: 0

摘要: 一、简介 任何一块开发板,最基础的程序入门就是点灯程序,这里着重给大家介绍 MM32F0140 开发的入门:GPIO 的各个寄存器的配置。 MM32F0140 GPIO 系统框图如下:二、MM32F0140 GPIO 介绍MM32F0140 GPIO 寄存器总览 ...

一、简介

       任何一块开发板,最基础的程序入门就是点灯程序,这里着重给大家介绍 MM32F0140 开发的入门:GPIO 的各个寄存器的配置。

       MM32F0140 GPIO 系统框图如下:

二、MM32F0140 GPIO 介绍

       MM32F0140 GPIO 寄存器总览,如下图所示,其中每个寄存器的作用会详细说明。


1. 端口配置寄存器 (GPIOx_CRH & GPIOx_CRL)(x = A..D)

       每个通用 I/O 端口都可以通过两个 32 位的控制寄存器(GPIOx_CRL/ GPIOx_CRH)和两个 32 位的复用控制寄存器(GPIOx_AFRL, GPIOx_AFRH)配置为 8 种模式:模拟输入,浮空输入,上拉输入, 下拉输入, GPIO 推挽输出, GPIO 开漏输出,复用推挽输出和复用开漏输出。

       其中,GPIOx_CRL & GPIOx_CRH 的含义如下:

        x 表示 IO 端口的 A、B、C、D 组,

        L 表示的是每一组 GPIO 的低 16 位,即 0-15 Pin

        H 表示的是每一组 GPIO 的高 16 位,即 16-31 Pin

        GPIOx_CRL & GPIOx_CRH 寄存器的具体每一位如下图所示:

       其中 MODE0 表示的是每一组 GPIO 的 Pin 0 引脚,其他的以此类推。

       以某组 GPIO Pin 0 引脚为例:

       CNF0 & MODE0 : 4 bit不同值表示如下:
      配置 MODE==0,端口为输入模式:
      00: 模拟输入模式
      01: 浮空输入模式
      10: 上拉/下拉输入模式
      11: 保留
      配置 MODE==1,端口为输出模式
      00: 通用推挽输出模式
      01: 通用开漏输出模式
      10: 复用功能推挽输出模式
      11: 复用功能开漏输出模式

2. 端口输入数据寄存器 (GPIOx_IDR)(x = A..D)

       端口输入数据寄存器总共 32 bit,高 16 bit 保留,低  16 bit 代表每一组 GPIO 不同 Pin 引脚的数据输入电平,该寄存器的状态为只读,具体如下所示。通过该寄存器的每一位读取的数据,就可以知道那一组的 GPIO 的第几引脚的电平信号。


3. 端口输出数据寄存器 (GPIOx_ODR)(x = A..D)

       端口输出数据寄存器总共 32 bit,高 16 bit 保留,低  16 bit 代表每一组 GPIO 不同 Pin 引脚的数据输入电平,不同于输入数据寄存器,该寄存器的状态为读写,具体如下所示。

       通过上述的介绍,可以知道读取的每一位的数据为某组 GPIO 的对应的引脚输出电平信号,写该寄存器的位时,并不是直接对该位进行写操作,而是通过以下介绍到的 GPIOx_BSRR 端口设置/清除寄存器(以下会详细介绍),实现对 GPIOx_ODR端口输出数据寄存器的每一位进行置 1 或者清除的操作。

 


4. 端口设置/清除寄存器 (GPIOx_BSRR)(x = A..D)


       端口设置/清除寄存器总共 32 bit,分为高 16 bit ,低  16 bit,其中代表的配置如下:

       (1)高 16 bit BRy(16~31 bit)的每一位的数据的配置表示如下:

       其中高 16 bit的每一位对应的是每一组 GPIO 相应的 Pin 引脚。

       0:相应的 ODRY 位没有改变
       1:清除对应的 ODRY位为 0

       (2)低 16 bit BSy(0~15 bit)的每一位的数据的配置表示如下:

       其中低 16 bit的每一位对应的是每一组 GPIO 相应的 Pin 引脚。

       0:相应的 ODRY 位没有改变
       1:置位对应的 ODRY位为 1

5. 端口位清除寄存器 (GPIOx_BRR)(x = A..D)

       端口位清除寄存器总共 32 bit,分为高 16 bit 是保留状态,低  16 bit,该寄存器的转台为只写状态,其中每一位代表的配置如下:

       可以通过该寄存器直接清除对应每一组 GPIO 的第几位的输出电平,对该寄存器的对应位写 1 可以直接清除输出的高电平状态为低电平。


6. 端口配置锁定寄存器 (GPIOx_LCKR)(x = A..D)

       当此寄存器的 bit16 被 Lock key 写入序列配置后, bit[0:15]便可用于 GPIO 端口的锁定,当端口被锁定后,只能在系统复位之后才能再次更改端口位的配置,且在规定的写入操作期间,不允许改变 bit[0:15],一个锁定位锁定端口配置寄存器中的 4 个位。

       一般有特殊应用的要求才会用到这个寄存器。

7. 端口复用功能寄存器 (GPIOx_AFRH & GPIOx_AFRL)(x = A..D)


       端口复用功能高位寄存器的具体配置位说明如下图,该寄存器主要是配置 IO 口的复用功能,其中改寄存器分为高位和低位,每一个 32 位的寄存器当中,每 4 位作为一组控制引脚的复用功能选择,所以每一个 IO 口有 8 个复用工能可以选择,因此刚好对应每一组 GPIO 的 16 个 Pin 引脚。

       端口的复用功能,主要是用来复用 IO 口作为其他外设使用,例如复用该 IO 口作为 SPI 通信接口或者 I2C 通信接口等,其中只能使用它的一个复用功能。后续博文介绍其他外设会有所介绍。


路过

雷人

握手

鲜花

鸡蛋

QQ|关于本站|小黑屋|Archiver|手机版|无线电爱好网 ( 粤ICP备15040352号 ) 无线电爱好技术交流5 无线电爱好技术交流1无线电爱好技术交流9开关电源讨论群LED照明应用、电源无线电爱好技术交流4无线电爱好技术交流8无线电爱好技术交流10无线电爱好技术交流11

粤公网安备 44030702001224号

GMT+8, 2022-10-27 09:23 , Processed in 0.109200 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

返回顶部