STM32F10xxx系列的GPIO简单说明

    F10xxx系列的单片机的GPIO有八种工作模式,分别是

─ 输入浮空   数字输入   可读取引脚电平,若引脚悬空,则电平不确定  

─ 输入上拉    数字输入   可读取引脚电平,内部连接上拉电阻,悬空时默认高电平

─ 输入下拉     数字输入   可读取引脚电平,内部连接下拉电阻,悬空时默认低电平

─ 模拟输入     数字输入    GPIO无效,引脚直接接入内部ADC

─ 开漏输出     数字输入    可输出引脚电平,高电平为高阻态,低电平接VSS

─ 推挽式输出    数字输入   可输出引脚电平,高电平接VDD,低电平接VSS

─ 推挽式复用功能    数字输入   由片上外设控制,高电平为高阻态,低电平接VSS

─ 开漏复用功能       数字输入    由片上外设控制,高电平接VDD,低电平接VSS

下面我将会依据手册给大家说明各个模式

这是中文版I/O端口位的基本结构

来说说保护二极管的作用,首先来说我们应该知道,当二极管的正极电压大于大于负极电压时,二极管就会导通。VDD可以看作单片机内部电压,略小于接入电路的电压VCC,VSS是公共连接的意思,通常指电路公共接地端电压。当我们的输入电压过大,大于VDD时,电流就会流向上面那个二极管,防止电压过大流入单片机内部,烧毁单片机。当我们的输入电压过小,小于VSS(VSS=0)时,电流就会流向下面那个二极管,这种电流也流不进单片机。因此输入电压要在0~3.3v才有效,部分可以容忍5v,大家可以自己看手册找找,手册里有说明。

这里我打差的地方是翻译错误,应该是施密特触发器才对,大家可以看一下原版的英文就知道了

关于施密特触发器,可以简单的和大家说一下他的作用

上图的输入信号很理想,其实我们输入的信号,或多多少带有噪声,这也就意味着我们的信号不光滑带有毛刺,模拟电压值不规律的变化,但是有了施密特触发器之后,不管你的信号如何花里胡哨,统统变成0和1。

下面我们继续结合中文说明手册说说各个模式。

输入浮空/上拉/下拉配置

相比于第一张I/O端口位的基本结构图,我们可以看到,在输入浮空/上拉/下拉模式下,输出部分断开,模拟和复用功能消失,这说明在这三种模式下,其他的模式是不起作用的。当我们启用上拉模式,开关连接VDD;启用下拉模式,开关连接VSS;启用浮空模式,开关谁也不连接。

模拟输入配置

相比于第一张I/O端口位的基本结构图,我们可以看到,在高阻抗的模拟输入配置下,GPIO的输出通道断开,输入通道只剩下模拟通道一路,施密特触发器关闭不通。这个模式下,我们通常要搭配内部的ADC使用。

推挽/开漏输出配置

很有意思的是,输出模式下,可以有输入,输入模式下,不能有输出,这是因为对于一个端口,它可以有多个输入,但只能有一个输出。

推完输出时,复用功能失效,输出寄存器上的’0’激活N-MOS,输出低电平0;而输出寄存器上的’1’将激活P-MOS,输出高电平1。施密特触发输入被激活,弱上拉和下拉电阻被禁止。

开漏输出时,复用功能失效,输出寄存器上的’0’激活N-MOS,输出低电平0;而输出寄存器上的’1’将端口置于高阻状态(P-MOS从不被激活)。施密特触发输入被激活,弱上拉和下拉电阻被禁止。

复用功能配置

复用功能包括:推挽式复用和开漏复用功能 ,其实他们和普通的推挽输出和开漏输出差不多,但不同的是,复用功能将输出的控制权利交给了片上外设,而普通的推挽输出和开漏输出将输出的控制权利交给了输出数据寄存器。

好了,这里就介绍这么多了,大家有疑问的可以自己再看看手册,以后再说说配置GPIO的事。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32F10xxx固件函数库是一套专门为STM32F10xxx系列单片机设计的软件库,该库由意法半导体(STMicroelectronics)提供。这个函数库包含了一系列的函数和驱动程序,用于简化和加速开发者对于STM32F10xxx单片机的软件开发过程。 stm32f10xxx_library_固件函数库提供了丰富的功能和模块,包括GPIO(通用输入输出)、ADC(模数转换器)、USART(串行通信接口)、SPI(串行外设接口)、I2C(串行总线接口)等。每个模块都有相应的函数和驱动程序,使开发者能够轻松地使用这些功能,并与外部硬件进行交互。 这个函数库具有以下特点: 1. 高度可移植性:可以在不同型号的STM32F10xxx单片机上使用这个库,只需轻微的修改就可以实现代码的迁移。 2. 效率高:库中的函数经过优化,可以在单片机上高效地执行,提高了代码的执行速度和效率。 3. 易于使用:库中的函数和驱动程序经过良好的封装,使用起来非常简便。开发者只需调用相应的函数,即可完成相应的操作。 4. 可扩展性:开发者可以根据自己的需求,添加自定义的功能或模块,以满足特定的应用需求。 总体而言,stm32f10xxx_library_固件函数库为STM32F10xxx系列单片机的开发提供了强大的软件支持。开发者可以通过使用这个函数库,快速搭建和开发各种应用程序,加快项目的开发进度,提高软件开发效率。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值