【STM32】Cortex_M4 GPIO口概述知识总结

简介: GPIO口:简单而言,就是芯片用来控制或者采集外部器件的相关信息,这个又可以称之为输入输出的端口。

一、GPIO概述

1、什么是GPIO口?

    GPIO口:简单而言,就是芯片用来控制或者采集外部器件的相关信息,这个又可以称之为输入输出的端口。

2、GPIO有什么作用?

  是芯片用来感知外部世界并且用来控制外部世界媒介。

3、stm32的GPIO口

在我们的stm32中,GPIO口一共有114个,而且这114个GPIO口以分组的形式存在,

2345_image_file_copy_105.jpg

如上,我们由这个芯片内部结构框架这个图(STM32F407xx),我们可以知道GPIO口,会按照分组的形式存在。

如上,分别可以从GPIOA到GPIOI口,但是上述的结构框架图是F407系列的,现在记笔记的芯片为STM32F407ZGTx芯片,所以上述的分组没有那么多,只含有分配到从GPIOA--GPIOG一共7组,每一组16个IO口,可以如上结构框架图可以知道从0口--15口,一共十六个,所以一共总得GPIO口一共是112个。

2345_image_file_copy_106.jpg

还有两个分别是,我们可以从电路图可以找到,因为这两个IO口比较特殊,不用我们直接操作的,所以可以不算到结构图当中来,我们可以了解一下,分别如下:

2345_image_file_copy_107.jpg

另一个也是在CPU右边,这个IO口是电池管理。

2345_image_file_copy_108.jpg

扩展比较一下,相比于STM32,我们的51单片机的IO口也是按照分组的形式存在的,分别从P0-P3组,而且每一组IO口都有8个口,分别由P0.0-P0.7.

2345_image_file_copy_109.jpg

二、STM32GPIO口主要特征

  • 受控IO口多达十六个,每一组有16个IO口
  • 输出状态:推挽或者开漏+上拉或下拉
  • 从输出数据寄存器(GPIOx_ODR)或外设(复用功能输出)输出数据
  • 可以为每一个IO选择不同的速度
  • 输入状态:浮空、上下拉、模拟输入(数模转换器)
  • 将数据输入到输入数据寄存器(GPIOx_ODR)或外设(复用功能输入)(这里简单而言,我们采集外面的信息,放到哪里去,就是我们的输入数据寄存器中)
  • 置位或者复位寄存器(GPIOx_BSRR),对GPIOx_ODR具有按位写权限
  • 锁定机制(GPIOx_LCKR),可冻结IO配置(这些简单理解就是比如我们用引脚控制灯,我们就是只用一个引脚就可以了,后面不用改变这个引脚,然后我们就可以将这个引脚改成冻结配置模式,好处就是我们不小心碰了一个引脚转态,这个冻结就可以帮我们锁定,不然固定功能因此改变)
  • 模拟功能
  • 复用功能输入/输出选择寄存器(一个IO口最多可以有十六个复用功能,和51不一样,我们每一个IO口都有复用功能)(这里简单理解就是我们所谓的复用就是除了GPIO我们还有很多的很多,如下图所示,TIMx、SPI等等
  • 快速翻转,每次翻转最多只需要两个时钟周期
  • 引脚复用非常灵活,允许将IO引脚用作GPIO或多种外设功能中的一种

2345_image_file_copy_110.jpg

不像51一样,51的IO口比较如下:

2345_image_file_copy_111.jpg

如上圈起来的解释,51单片机这个P3只有P3.0和RxD这两个功能,所以我们的STM32的GPIO口用起来更加的灵活。

三、变量与寄存器

二者的异同

二者相同的地方:变量和寄存器一样都是向内存申请了存储的空间,可以存储数据,并且还有相应的地址;

二者存在差异的地方:变量的地址是随时变化的

,但是寄存器的地址是不变的,简单说,寄存器的地址已经被我们的芯片给固定好了。

例如:

2345_image_file_copy_112.jpg

变量我们用一个个小的(右下角)方框表示,让后这个变量是可以改变的,可以进行左移右移等操作,但是我们的寄存器,寄存器相当于变量,变量就会有变量名,变量名就有地址,只不过我们的寄存器的地址是固定的(如上我们设置成0x32),所以0x32就是我们寄存器的名字。

总结:学习STM32前都要先了解掌握其GPIO的相关知识,只有了解到了GPIO的配置知识才能算是入门!


相关文章
|
7月前
|
存储
STM32F103标准外设库——GPIO 输入、输出 (五)
STM32F103标准外设库——GPIO 输入、输出 (五)
428 0
STM32F103标准外设库——GPIO 输入、输出 (五)
【STM32】引脚GPIO批量操作数组&for循环流水灯
【STM32】引脚GPIO批量操作数组&for循环流水灯
934 0
|
芯片
STM32速成笔记(二)—GPIO
本文介绍了STM32的GPIO的配置和使用方法,并且给出了应用实例。此外,针对使用时可能遇到的一些问题给出了解决办法。
398 0
STM32速成笔记(二)—GPIO
|
5月前
stm32f407探索者开发板(八)——按键输入实验--GPIO做输入
stm32f407探索者开发板(八)——按键输入实验--GPIO做输入
|
5月前
|
传感器 编解码 API
【STM32开发入门】温湿度监测系统实战:SPI LCD显示、HAL库应用、GPIO配置、UART中断接收、ADC采集与串口通信全解析
SPI(Serial Peripheral Interface)是一种同步串行通信接口,常用于微控制器与外围设备间的数据传输。SPI LCD是指使用SPI接口与微控制器通信的液晶显示屏。这类LCD通常具有较少的引脚(通常4个:MISO、MOSI、SCK和SS),因此在引脚资源有限的系统中非常有用。通过SPI协议,微控制器可以向LCD发送命令和数据,控制显示内容和模式。
202 0
|
6月前
经验大分享:STM32F4寄存器初始化系列:GPIO
经验大分享:STM32F4寄存器初始化系列:GPIO
34 0
|
7月前
|
芯片
STM32 GPIO工作原理详解
STM32 GPIO工作原理详解
116 0
No.5 STM32F429IGT6 标准库实战GPIO输出LED灯 点亮闪烁(STM32F429/F767/H743)
No.5 STM32F429IGT6 标准库实战GPIO输出LED灯 点亮闪烁(STM32F429/F767/H743)
STM32F0单片机快速入门五 GPIO中断
STM32F0单片机快速入门五 GPIO中断
|
存储 数据采集 芯片
No.4 STM32F429IGT6 GPIO相关学习总结(STM32F429/F767/H743)
No.4 STM32F429IGT6 GPIO相关学习总结(STM32F429/F767/H743)