STM32 | GPIO口的普通与复用如何配置与用法,本文降从最底层教你如何查看手册运用寄存器来实现GPIO口的配置

这篇具有很好参考价值的文章主要介绍了STM32 | GPIO口的普通与复用如何配置与用法,本文降从最底层教你如何查看手册运用寄存器来实现GPIO口的配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🎊【蓝桥杯嵌入式】专题正在持续更新中,原理图解析✨,各模块分析✨以及历年真题讲解✨都在这儿哦,欢迎大家前往订阅本专题,获取更多详细信息哦🎏🎏🎏

🪔本系列专栏 -  蓝桥杯嵌入式_勾栏听曲_0的博客

🍻欢迎大家  🏹  点赞👍  评论📨  收藏⭐️

📌个人主页 - 勾栏听曲_0的博客📝

🔑希望本文能对你有所帮助,如有不足请指正,共同进步吧🏆

🎇安能以身之察察,受物之汶汶者乎?安能以皓皓之白,而蒙世俗之尘埃乎?📈


GPIO

查看原理图

芯片电路原理图

芯片数据手册

找到引脚定义,理解引脚功能

找到功能对应的Port

微控制器参考手册

 总结


GPIO

GPIO(英语:General-purpose input/output),通用型之输入输出的简称,功能类似8051的P0—P3,其接脚可以供使用者由程控自由使用,PIN脚依现实考量可作为通用输入(GPI)或通用输出(GPO)或通用输入与输出(GPIO),如当clk generator, chip select等。

既然一个引脚可以用于输入、输出或其他特殊功能,那么一定有寄存器用来选择这些功能。对于输入,一定可以通过读取某个寄存器来确定引脚电位的高低;对于输出,一定可以通过写入某个寄存器来让这个引脚输出高电位或者低电位;对于其他特殊功能,则有另外的寄存器来控制它们。

本次举例的芯片为STM32G4系列,其他芯片配置原理类似,相信你看完这篇文章后会有更深入的理解。


查看原理图

要从底层理解GPIO口配置的原理,必然就少不了看原理图,大家稍安勿躁,一定要克服,现在就由我来带大家认清GPIO的真面目吧,简单易懂,放心食用。

芯片电路原理图

我们只来看芯片区域的原理图,其他外设暂时不看,可观们请看下图:

gpio复用,STM32,蓝桥杯嵌入式,stm32,单片机,arm,硬件工程,arm开发

 STM32芯片和51类似,GPIO引脚也是分为了几组,有PA0~PA15,PB0~PB15等,其中有一些引脚是我们无法配置的,如序号15,31,47,63的VSS等,具体看下图(非灰色的引脚就是无法改变的),然后对照上图就能看出来,这些引脚都是接地或者高电平之类的固定值。

gpio复用,STM32,蓝桥杯嵌入式,stm32,单片机,arm,硬件工程,arm开发

 好的,现在我们进入正题,假如我们想使用PA4引脚的“SPI3_NSS/ I2S3_WS”功能,我们是不是要先知道PA4引脚普通模式是什么功能,复用模式又是什么功能呢,然后再去理解,普通模式与复用模式如何配置。那我们接着往下看。


芯片数据手册

在芯片书手册中,我们主要查询的是各个GPIO口的功能,包括普通模式与复用模式下的各种功能,然后去对照微控制器操作手册来配置GPIO口,话不多说,接下来看图(我们依旧以配置PA4口的“SPI3_NSS/ I2S3_WS”功能举例):

找到引脚定义,理解引脚功能

第一步,找到手册中引脚及引脚描述(Pinouts and pin description)这一章(不同手册名称可能不同,但意思大抵是相同的),然后再向下找到“Pin definition”:

gpio复用,STM32,蓝桥杯嵌入式,stm32,单片机,arm,硬件工程,arm开发

 然后再这一章节中找到介绍PA4的地方,如下,我们就可以知道PA4引脚的普通模式与复用模式的功能分别是什么了,也能找到我们的目标PA4引脚的“SPI3_NSS/ I2S3_WS”功能。

gpio复用,STM32,蓝桥杯嵌入式,stm32,单片机,arm,硬件工程,arm开发

 在这之中,我们发现PA4引脚的普通功能是TT_a,而复用功能有TIM3_CH2, SPI1_NSS, SPI3_NSS/ I2S3_WS, USART2_CK, SAI1_FS_B, EVENTOUT,这么多,我们要找的“SPI3_NSS/ I2S3_WS”就在复用功能中,但是又这么多复用功能,我们要这么去配置来分辨他们呢?我们接着向下走。

找到功能对应的Port

第二步,找到手册中引脚及引脚描述(Pinouts and pin description)这一章(不同手册名称可能不同,但意思大抵是相同的),然后再向下找到“Alternate functions”:

gpio复用,STM32,蓝桥杯嵌入式,stm32,单片机,arm,硬件工程,arm开发

 点击即可看到如下,再找到PA4,后面就是PA4 引脚的复用功能,再这张图中PA4后面找到“SPI3_NSS/ I2S3_WS”功能对应的列头(Port),可以看到是“AF6”:

gpio复用,STM32,蓝桥杯嵌入式,stm32,单片机,arm,硬件工程,arm开发

 接下来我们拿着这个Port“AF6”往下走


微控制器参考手册

我们现在这个手册中找到“General-purpose I/Os (GPIO)”中的“GPIO registers”,在这下面找到寄存器(GPIOx_AFRL),我这里是“GPIO alternatefunction low register(GPIOx_AFRL) (x = A to G)”:

gpio复用,STM32,蓝桥杯嵌入式,stm32,单片机,arm,硬件工程,arm开发gpio复用,STM32,蓝桥杯嵌入式,stm32,单片机,arm,硬件工程,arm开发

 这里可以看到有两个(GPIO_AFRH),对应的是low reguster低寄存器(低八位)与high reguster高寄存器(高八位),我们需要找的是PA4口,也就是低八位了,所以我们来看9.4.9low register:

gpio复用,STM32,蓝桥杯嵌入式,stm32,单片机,arm,硬件工程,arm开发

 因为我们找的是PA4口。对应的是AFSEL4,下面有四个数据为,现在是定义到了PA4口,那么接下来就要实现“SPI3_NSS/ I2S3_WS”,这个功能对应是port是”AF6“,我们往下翻 可以看到如下,“AF6”对应的数据是“ 0110”。

gpio复用,STM32,蓝桥杯嵌入式,stm32,单片机,arm,硬件工程,arm开发

现在一切都浮出水面啦,最后的配置就是将“GPIOX_AFRH”寄存器赋值,因为找的是PA4口,所以是GPIOA_AFRH,然后也因为是PA,所以我们选择到AFSEL4[3:0],而我们选择的功能对应的Port是“AF6”,而“AF6”对应的是数据是“0110”,所以我们赋值是数据为“0110”,到此,我们就完成了PA4口复用功能“GPIOA_AFRH”的选择了。


 总结

首先在硬件手册中了解 GPIO端口的名称;然后再到数据手册中找到需要使用的GPIO的普通模式还是复用模式,如果是复用模式,在找到该复用模式对应的port是多少;然后再到微控制器手册中找到对应的寄存器赋值,以及port对应的数值,再赋值给寄存器就可以啦。


如果有帮助的话,欢迎点赞收藏哦~🤩,有不同见解或更好的观点也可以在评论区留言,也可以笔者点点关注,互通有无,互相进步。文章来源地址https://www.toymoban.com/news/detail-620568.html

到了这里,关于STM32 | GPIO口的普通与复用如何配置与用法,本文降从最底层教你如何查看手册运用寄存器来实现GPIO口的配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • stm32 - GPIO高级用法

    PWM波通过改变占空比可以改变LED的亮度 PWM信号调节LED亮度时,信号频率保持不变,即一个周期时间不变,改变的是脉冲的高电平的时间,即LED的导通时间,占空比越高,高电平的时间越长,LED亮度越亮 人眼的视觉残留小样,当频率超过75HZ(周期小于13ms),人眼的闪烁感消失,

    2024年01月21日
    浏览(60)
  • 对于STM32F4库函数中GPIO_PinAFConfig()函数的解读,对复用功能的理解

    1、文章概述:在跟着野火学习STM32F07课程使,到串口这一章节,我不太理解GPIO_PinAFConfig()函数的意思。后来经过,查找资料,自己计算GPIO_PinAFConfig()函数内的内容,最终理解的GPIO_PinAFConfig()函数的意思是:将外设(形参一)的某个引脚(形参二)用作什么功能(参数三)。那

    2024年02月12日
    浏览(38)
  • 学习笔记——STM32C8T6如何配置普通IO口

     最近使用stm32f103c8t6时,想要使用PA15端口作为普通io口输出电平信号,但是发现配置不生效,于是就去网上查,发现要关闭初始状态下芯片默认的专用复位功能,于是总结了一下几个配置普通io口的引脚: 有: PA13  PA14  PA15  PB3  PB4 同时,这些引脚主功能(复位后)的功能

    2024年02月02日
    浏览(47)
  • STM32:GPIO_SetBits函数用法解释

    GPIO_SetBits函数是用于将指定引脚设置为高状态的函数,可以使用以下步骤进行使用: 首先需要初始化GPIO引脚,这可以通过GPIO_Init函数完成。在调用GPIO_Init函数时,需要传递一个GPIO_InitTypeDef类型的结构体,以配置引脚的模式、速度和上下拉电阻等参数。 在GPIO初始化完成后,

    2024年02月08日
    浏览(46)
  • STM32:GPIO_ResetBits函数用法解释

    GPIO_ResetBits函数是用于将指定引脚设置为低状态的函数,可以使用以下步骤进行使用: 首先需要初始化GPIO引脚,这可以通过GPIO_Init函数完成。在调用GPIO_Init函数时,需要传递一个GPIO_InitTypeDef类型的结构体,以配置引脚的模式、速度和上下拉电阻等参数。 在GPIO初始化完成后,

    2024年02月09日
    浏览(42)
  • STM32——GPIO配置

    GPIO的输入输出是对于STM32单片机来说的。以下仅为个人粗略笔记,内部电路分析可参考博客https://blog.csdn.net/k666499436/article/details/123845466 1. 输入 上拉输入 下拉输入 浮空输入 模拟输入 2. 输出 复用推挽输出 普通推挽输出 复用开漏输出 普通开漏输出 3. 如何选择GPIO的模式 先判

    2024年02月12日
    浏览(37)
  • [STM32 GPIO配置]

    GPIO初始化结构体: 关于 GPIO_Mode : 在程序函数里是这么写的: ​ 其中,具体的模式及使用说明如下: ​ GPIO_Mode_AIN 为模拟输入模式(Analog Input Mode)。 ​ 在该模式下,GPIO引脚被配置为模拟信号输入。ADC模块可以将引脚读取到的模拟信号转换成数字信号进行处理。这种模式

    2024年02月19日
    浏览(39)
  • 【STM32】STM32F4 GPIO详解与配置

    GPIO是通用输入输出端口的简称,为STM32可控制的引脚,STM32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。STM32芯片的GPIO被分成很多组,每组有16个引脚,所有的GPIO引脚都有基本的输入输出功能。 其中保护二极管使GPIO能够5V电压容忍。在

    2024年02月07日
    浏览(52)
  • STM32:GPIO配置和使用

    目录 一、GPIO简介 1.1 GPIO的输入输出模式 1.1.1 输入模式 1.1.2 输出模式 二、GPIO的使用 2.1 引脚初始化 2.2 引脚使用 注:型号:STM32F407ZET6     GPIO:通用输入输出接口     STM32上有A~H共8组,其中A~G7组每组有0~15号共16个引脚,H组有两个引脚。 1.1.1 输入模式      1. 上拉输入  

    2024年02月08日
    浏览(34)
  • STM32配置GPIO的高低电平

    一、在keil对应的工程文件的对应位置新建gpio.h和gpio.c文件; 二、编辑gpio.c文件; 三、在gpio.h文件中编辑; 四、在主文件main.c文件中运用即可;

    2024年02月13日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包