(STM32基础)GPIO外设学习

一、GPIO(General Purpose Intput Output)通用输入输出口的结构介绍

 1) 通用输入输出口的结构介绍

IO保护二极管作用 :VDD接3.3v,当输入电压高于3.3v,电位高于VDD,电流从VDD流出,不流入电路,避免过高电压伤害电路从而保护电路。VSS接0v,当输入电压低于VSS电压,电压为相对于VSS的电压,所以存在负电压,电流从VSS流出IO口,所以保护内部电路无电流。

只有输入电压是0-3.3v才可以流入电路。这就是保护二极管的作用。

GPIO(General Purpose Intput Output)的输入

VDD闭合VSS断开为上拉输入模式

VSS闭合VDD断开为下拉输入模式

两个都断开则为浮空输入模式。

此电路的作用是给输入提供默认输入电平,因为如果输入IO口什么都不接,则电路处于浮空状态,引脚输入状态极易收到干扰改变,为了避免引脚悬空导致输入数据不确定。 

图中肖特基触发器实际为施密特触发器,作用是对输入电压进行整形;执行逻辑为如果电压大于某一阈值,输出位高电平,电压小余某一阈值,输出位低电平。因为数字信号实际情况会产生失真,有电平波动,所以通过施发器密特触设置两个阈值:上限和下限,只有 高于上限或低于下限 才会发生电平变化,中间留有一定的变化范围,这样可以有效避免因为信号波动造成的输出抖动现象。

通过施密特触发器整形的波形可以写入输入数据寄存器。再用程序读取对应某一位数据就可以知道端口电平。

模拟输入是ADC功能的连接线。

复用功能输入是连接其他需要读取端口的外设的,例如串口。

 二、GPIO(General Purpose Intput Output)的输出

数字部分由输出数据寄存器和片上外设部分控制,两种控制方式,通过数据选择器接到输出控制部分,输出数据寄存器是普通IO口输出,写某一位就可以操作某一位端口,位设置/清除寄存器是用来单独操作输出数据寄存器的某一位而不影响其他位的。因为输出寄存器只能控制16个端口,并且只能整体读写。如果想要控制单一端口而不影响其他端口,则需要用特殊操作方式。

通过位设置寄存器,如果要将某一位置1,则在位设置寄存器对应位写1,其他位写0,这样就会把写1的对应位置1,其他味不变。

如果要将某一位置0,则在位清除寄存器对应位写1,其他位写0,这样就会把写1的对应位置0,其他味不变。

另外还可以通过读写STM32当中的“位带”区域,作用类似于51单片机的位寻址。STM32中有一段地址区域,这段地址区域映射了所有的RAM、外设寄存器的所有位,读写这段地址中的数据,相当于读写所映射位置的某一位。

库函数是通过位设置/清除寄存器来实现位操作的。 

2)GPIO口可以配置成八种模式使用

重点:

1、在输出模式下可以输入,但是在输入模式下不可以输出,因为一个端口只能有一个输出口,但是可以有多个输入口。

2、在模拟输入下会关闭其他输入输出口,在其他7个输入输出模式中,所有输入都是有效的。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
GPIO是General Purpose Input/Output的缩写,即通用输入输出引脚。它是一个在微控制器中用于与外部设备进行数据交互的重要外设。 在STM32系列的微控制器中,GPIO外设能够实现以下功能: 1. 输入功能:GPIO引脚可以作为输入引脚,用于接收来自外部设备的信号。例如,可以将GPIO引脚连接到传感器的输出引脚,从而读取传感器的数据。 2. 输出功能:GPIO引脚可以作为输出引脚,用于向外部设备发送信号。例如,可以将GPIO引脚连接到LED或继电器等外设,通过控制引脚的电平来实现对这些外设的开关控制。 3. 中断功能:GPIO引脚可以配置为触发中断操作,以便在外部事件发生时通知微控制器。例如,当某个按钮按下时,通过配置GPIO的中断功能可以及时地响应并执行相应的处理程序。 4. 模拟功能:某些GPIO引脚在特定的微控制器型号中可以具有模拟功能。这些引脚可以用于模拟输入和输出,例如用于ADC(模数转换器)的模拟输入或DAC(数模转换器)的模拟输出。 5. 外设功能:GPIO引脚可以配置为与其他外设进行复用,从而实现更广泛的功能。例如,通过将GPIO引脚配置为UART外设的引脚,可以实现串口通信;将GPIO引脚配置为SPI或I2C外设的引脚,则可以实现SPI或I2C通信。 综上所述,STM32GPIO外设非常灵活,可以用于实现输入、输出、中断、模拟和与其他外设的复用等多种功能,使得STM32微控制器在各种应用中具有更广泛的适用性和可扩展性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值