单片机学习之GPIO

129 篇文章 21 订阅
37 篇文章 7 订阅

今日分享如何通过手册理解单片机IO知识点。

含义解释:

1. GPIO:同我们常说的IO口一样, General Purpose Input Output (通用输入/输出)简称为GPIO,每个GPIO端口可通过软件分别配置成输入或输出模式。

2. 外设:指的是除CPU以外的外围功能模块,只不过这部分电路依旧被封装在单片机内部,比如IO,ADC,DAC,TIM等。

3. 复位:把MCU恢复到最开始的状态,比如说我们把电脑重启了一次,就相当于复位了一次,在这里我们把MCU恢复到初始的状态称为复位。

4. 往某一位写1,在硬件上就相当于把把它设置成高电平,清0则与之相反。

芯片的缩略封装图:

STM32F373CCT6 总共有48个引脚(图中左上角红色圈起来的1代表芯片的1号引脚,后面的以此类推,我们这里把1脚简称1Pin),分以下几个类别:

1.可以编程控制的引脚:PAx(x表示0,1,2…),PBx(x表示0,1,2…)等以相同类似方式命名的。STM32F373CCT6分多组 IO口,分别用大写字母表示,即x=A/B/C/D/E/F,例如GPIOA,表示A组IO口,这组IO口下面又有很多引脚,那么我们就用PA0,PA1,PA2等方式来表示,每组下面最多16个IO口。通俗点来讲:GPIOA就相当于八年级五班这个班级,PA0,PA1相当于班里的学生,有叫李刚的,有叫张华的等等,每个班最多16个学生。

我们看到有的可编程控制的引脚,例如PC14-OSC32-IN,那么说明这个引脚有多种功能,可以当IO口用,也可以当做OSC32-IN用,在下面我们会具体解释这样的引脚。

2. 不可编程控制的引脚:1Pin(备用电源正脚),7 Pin(复位脚), 8 Pin(模拟电源负脚), 9 Pin(模拟电源/参考电压正脚), 17 Pin(数字电源正脚),23 Pin(SDADC1, SDADC2, SDADC3 地),24 Pin(SDADC1, SDADC2, SDADC3 电源),25 Pin(SDADC1, SDADC2, SDADC3的外部参考电压正),44 Pin(启动内存选择引脚),47 Pin(数字电源负脚),48 Pin(数字电源正脚)。

(1)后备区域供电脚VBAT 脚的供电采用 CR1220 纽扣电池和 VCC3.3 混合供电的方式,在有外部电源 (VCC3.3) 的时候, CR1220 不给 VBAT 供电, 而在外部电源断开的时候, 则由 CR1220给其供电。这样,VBAT 总是有电的,以保证 RTC 的走时以及后备寄存器的内容不丢失。

(2)BOOT0

关于详细的引脚功能定义可以查阅《STM32F373xx》数据手册第33页,这里我们解释下关于引脚的功能问题:

① 默认功能:也就是引脚的普通功能。

② 复用功能:即将IO口用作普通输入输出以外的功能,通过配置相关寄存器后选择的功能,例如串口输入输出,使用时需要配置复用模式。

想要配置成复用功能,首先需要查看引脚定义看看这个IO口可不可以被配成复用功能,这个是由IO的内部电路决定的。如果有才可以被配置,配置成复用功能不仅仅是要通过寄存器GPIOx_MODER配制成复用功能模式,而且还要通过GPIOx_AFRL,GPIOx_AFRH寄存器选择IO复用功能。这样IO口才能真正被配成复用功能。

③ 附加功能:配置相关外设寄存器来选择的功能,比方配置ADC使能某些通道等来使能相应管脚的附加功能。同样想要配置成附加功能,首先需要查看引脚定义看看这个IO口可不可以被配成附加功能,这个也是由IO的内部电路决定的。如果有,那么通过寄存器GPIOx_MODER配制成模拟功能模式。

每组通用I/O 端口包括 4 个 32 位配置寄存器 (MODER、 OTYPER、 OSPEEDR和 PUPDR) 、2 个 32 位数据寄存器(IDR 和 ODR) 、1 个 32 位置位/复位寄存器 (BSRR)、1 个 32 位锁定寄存器 (LCKR) 和 2 个 32 位复用功能选择寄存器(AFRH 和 AFRL)等,可以被配置成一下几种不同的模式:

输入上拉:IO口上拉就是在IO口通过接一个电阻到电源(注意这个电压要和单片机供电电压相同,否则过高会烧毁IO),电阻的大小决定了电源到IO口电流的不同,这就是我们常说的弱上拉等。下面附图一张。

 输入下拉:下拉就是在IO口通过接一个电阻到地,电阻的大小决定了IO口到地电流的不同,这就是我们常说的弱下拉等。下面附图一张。

 输入浮空/模拟输入:浮空(floating)就是逻辑器件的输入引脚即不接高电平,也不接低电平。浮空最大的特点就是电压的不确定性,它可能是0V,也可能是VCC,还可能是介于两者之间的某个值. 浮空一般用来做ADC输入用,可能有的芯片把浮空模式和模拟输入模式分开了,在此解释一下,在浮空模式下使能了IO的模拟功能就相当于是模拟输入。

 开漏输出:开漏输出就是我们所说的OC输出,不输出电压,相当于N型三极管的集电极作为单片机的IO口,需要在外部加一个上拉电阻配合使用。如图:

 推挽输出:可以输出高,低电平,但相对于普通的输出而言,这种输出方式增加了输出能力。如图:

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

上图为引脚的内部电路框图(红圈内或旁边数字代表序号,下面简称1号等)

输出部分解析:输出分三路

第一路,1号(读/写动作-由片内外设控制)——>3号(经过一个逻辑门->输出控制电路)

第二路,15号(写动作)——>14号(Bit Set/Reset register 位设置/清零寄存器),——>13号(Output data register数据输出寄存器)——>3号(经过一个逻辑门->输出控制电路)

第三路,2号(复用功能输出)——>3号(经过一个逻辑门->输出控制电路)。

三路都通过控制4号(MOS管电路,根据配置的不同模式,驱动P-MOS或者N-MOS或者两个一起驱动)——>5/7号的下拉/上拉电阻(我们可以看到上/下拉电阻有开关控制,意思就是可以通过外部的某些东西去控制使能或者失能上/下拉)——>6号的保护二极管(这里利用了二极管钳位的功能,可以在一部分程度上起到保护引脚的作用)——>IO口。

输入操作解析:同样分三路

第一路,IO口——>6号的保护二极管输出到——>9号(模拟输入)——> 片上外设

第二路,IO口——>6号的保护二极管输出到——>8号(开关,可靠外部控制)——>10号(复用功能输入)——> 片上外设

第三路,IO口——>6号的保护二极管输出到——>8号(开关,可靠外部控制)——>12号(Input data register输入数据寄存器)——> 11号(可供读取数据)。

 【文章福利】给大家分享一些stm32学习资料,点击下方即可学习:

学习交流群:769843038

STM32单片机之GPIO开发

 STM32-按键消抖

物联网人脸识别考勤机

(stm32 USART串口应用)

PWM脉宽调制技术

(定时器)

智能农业沙盘

小米体重秤技术开发

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
单片机GPIO(General Purpose Input/Output)是一种通用输入输出引脚,可以用于连接外部设备和与外部环境进行交互。GPIO的综合应用非常广泛,以下是一些常见的应用场景: 1. 控制外部设备:通过GPIO可以控制各种外部设备,如LED灯、蜂鸣器、电机等。通过设置GPIO引脚的电平状态(高电平或低电平),可以实现对这些设备的开关、亮灭、转动等操作。 2. 读取外部信号:GPIO不仅可以输出信号,还可以输入外部信号。通过读取GPIO引脚的电平状态,可以获取外部传感器、开关等设备的状态信息。例如,可以通过GPIO读取按钮按下的状态,或者检测传感器的输出信号。 3. 扩展接口:单片机GPIO可以用于扩展接口,通过连接外部模块或其他单片机,实现更多的功能。例如,可以通过GPIO与LCD显示屏、键盘、无线模块等进行通信,实现更复杂的应用。 4. 中断处理:GPIO引脚还可以配置为中断触发模式,当外部事件发生时,会触发中断请求,从而及时响应并处理相应的事件。这在实时性要求较高的应用中非常重要,如实时控制、数据采集等。 5. 通信接口:有些单片机GPIO引脚还可以配置为特定的通信接口,如UART、SPI、I2C等。通过配置相应的引脚功能,可以实现与其他设备的数据交换和通信。 以上是单片机GPIO的一些综合应用场景,通过合理配置和使用GPIO引脚,可以实现各种功能和交互。如果你有具体的问题或者需要更详细的介绍,请告诉我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值