一、GPIO概述

1、什么是GPIO口?

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

2、GPIO有什么作用?

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

3、stm32的GPIO口

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

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

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

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

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

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

二、STM32GPIO口主要特征

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

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

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

三、变量与寄存器

二者的异同

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

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

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

例如:

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

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

【STM32】Cortex_M4 GPIO口概述知识总结相关推荐

  1. 番外篇:STM32之GPIO口速率配置究竟代表什么

    番外篇:STM32之GPIO口速率配置究竟代表什么 用过STM32的童鞋们都知道,STM32在GPIO配置时都需要选择一个GPIO速率,对于STM32F103系列芯片来说最快的配置应该是50Mhz左右 ...

  2. STM32的GPIO口能够承受多大电压? 哪些IO口能容忍5V?

    STM32的GPIO口能够承受多大电压? 哪些IO口能容忍5V? http://www.360doc.com/content/16/0121/08/9200790_529468619.shtml ST ...

  3. STM32中GPIO口八种工作模式简介及LED灯测试

    STM32中GPIO口八种工作模式简介及LED灯测试 一.GPIO口八种工作模式 二. LED灯测试 一.GPIO口八种工作模式 在STM32单片机里对于GPIO的配置种类有8种之多,包括4种输入模式 ...

  4. linux gpio 模拟串口,STM32的GPIO口模拟串口通信.rar

    [实例简介] 利用GPIO.EXTI外部中断.TIM定时器实现URAT串口,该例子来自21IC网,未做改动,明天自己调试,看看效果 完全是根据UART协议编写 [实例截图] [核心代码] STM32的 ...

  5. 嵌入式学习笔记——STM32的USART通信概述

    文章目录 前言 常用通信协议分类及其特征介绍 通信协议 通信协议分类 1.同步异步通信 2.全双工/半双工/单工 3.现场总线/板级总线 4. 串行/并行通信 5. 有线通信.无线通信 STM32通信 ...

  6. Stm32的GPIO驱动继电器

    三极管 三极管S8050-D: 直插的字体面向自己从左到右依次是发射极E,基极B,集电极C 类型:NPN 集电极耗散功率Pc:0.625W(贴片:0.3W) 集电极电流Ic:0.5A 集电极-基极电压 ...

  7. STM32笔记 GPIO介绍及IO口操作 STM32F0 利用C语言位域实现仿位带操作

    文章目录 GPIO简介 工作方式 相关寄存器介绍 IO 操作步骤 IO口三种操作细解 附录:C语言相关 偏移地址与绝对地址 GPIO简介 GPIO:每个连接到I/O总线上的设备都有自己的I/O地址集, ...

  8. stm32 gpio口的工作模式

    一.推挽输出:可以输出高.低电平,连接数字器件:推挽结构一般是指两个三极管分别受两个互补信号的控制,总是在一个三极管导通的时候另一个截止.高低电平由IC的电源决定. 推挽电路是两个参数相同的三极管或M ...

  9. STM32单片机在Keil5下仿真的问题解决及GPIO口初始化、使用

    STM32单片机在Keil5下仿真的问题解决及GPIO口初始化.使用 参考文章: (1)STM32单片机在Keil5下仿真的问题解决及GPIO口初始化.使用 (2)https://www.cnblog ...

最新文章

  1. 高精地图与自动驾驶(下)
  2. Python之sklearn-pmml:sklearn-pmml的简介、安装、使用方法之详细攻略
  3. spark.mllib源码阅读:GradientBoostedTrees
  4. cocos2dx 3.x 解决输入框(TextField,TextFieldTTF) 输入中文变乱码的问题
  5. IntelliJ IDEA :解决idea导入项目爆红
  6. 【ACL2021】话题感知的语义建模
  7. 《C语言到底能干什么》1.3 窗口程序的编写
  8. 成形滤波器和匹配滤波器
  9. iconfont字体图标下载及使用方法
  10. WebRTC 概念介绍--一篇读懂source、track、sink、mediastream
  11. COJ 0359 xjr考考你数据结构(根号2)线段树区间增加
  12. wkwebview 预览文件_iOS之H5调用系统相册相机浏览文件
  13. Django测试文件——tests.py
  14. RuoYi-Vue——关于登录后不同角色跳不同页面
  15. DDD落地过程中有关DTO的思考
  16. 爬壁机器人外文文献_仿生爬壁机器人的研究现状
  17. 共享单车骑行数据分析数据来源
  18. 英语学习/词典app——top5
  19. 2016阿里实习线上笔试题-附加题1-随机数生成器
  20. 用一朵花开的时间,记录自己的成长

热门文章

  1. 数字式三用表检定装置TD1860多功能校准系统
  2. python3安装pymysql(pycharm工具)
  3. linux pymysql 安装_Python进阶知识全篇-MySQL(PyMySQL)
  4. 关于系统里同时有pycharm和Anaconda
  5. 从计算到智算,计算产业掀起什么样的浪潮?
  6. vue获取屏幕的实时 宽度 / 高度
  7. JAVA 通过value获取Map中key的三种方法
  8. vue openlayers——图层控制 切换底图
  9. ICLR 2022 | ORFD: 第一个开源的越野环境可行驶区域检测数据集
  10. 改造3dmax的快捷键自定义3dmax快捷键