STM32入门教程

本文详细介绍了GPIO(通用输入输出)的概念、特点,如快速翻转、多种模式配置和IO引脚分布,以及STM32中的GPIO结构和操作。此外,还涵盖了施密特触发器、MOS管和GPIO的不同模式,包括点灯示例,对初学者和技术人员都有指导价值。
摘要由CSDN通过智能技术生成

一、GPIO简介

什么是GPIO?

GPIO(General Purpose Input Output)通用输入输出口

作用:负责采集外部器件信息或者控制外部器件工作,即输入输出

如图1所示,当KEY按下去时候,VCC接通到GND中,IO采集到电压即为VCC(逻辑1),若没有触发KEY则采集到0

输入模式下可读取端口的高低电平或电压,用于读取按键输入、外接模块电平信号输入、ADC电压采集、模拟通信协议接收数据等

输出模式下可控制端口输出高低电平,用以驱动LED、控制蜂鸣器、模拟通信协议输出时序等

                        图1                                                               图2

二、GPIO特点

1.快速翻转,每次翻转最快只需要两个时钟周期

2.可配置为8种输入输出模式

3.任何IO口都可作为外部中断

4.引脚电平:0V~3.3V,识别电压范围(COMS端口:3.3v,TTL端口(FT):5.5v):

                                                             -0.3<Vₗ˪<1.164

                                                             1.833<Vₗₕ<3.6v

5.输出电流:最大25mA

三、GPIO引脚分布

STM32引脚类型:

电源引脚(V字母开头)、晶振引脚(3-4为34.768KHz、5-6高速晶振)、复位引脚(7)

下载引脚、BOOT引脚(27、28、60)、GPIO引脚(其余以P开头的基本是)

四、GPIO基本结构

F1的GPIO位结构

上部是输入部分:信号进来经过保护二极管后进入输入启动器,经过上下拉电阻可使用后分成两条路,上路分至模拟输入ADC或者DAC中作为模拟使用,下路经过施密特触发器后分为复用功能输入,再分支为IDR输入数据寄存器,再通过CPU读取寄存器完成通用输入。

下部分是输出:主要靠P-MOS和N-MOS来输出,输出高电压则用P-MOS,低电平则用N-MOS,其左部是一个输出机构,通过二选一选择器,一条是通过输出数据寄存器ODR,另一条为复用功能输出。

                                                   图3

F4/F7/H7与F1对比

1.F4/F7/H7的上下拉电阻必须经过信号,而且F1在输出模式时,禁止使用内部上下拉,而F4/F7/H7可以

2.不同系列IO翻转速度不同

施密特触发器

施密特触发器就是一种整形电路,可以将非标准方波,整形成方波

特点:

当输入电压高于正向阈值电压,输出为高;

当输入电压低于负向阈值电压时,输出为低;

当输入在政府向阈值电压之间,输出不改变。

P-MOS&N-MOS管简介

MOS管是压控型元件,通过控制栅源电压(Vgs)来实现导通和关闭。

G:栅极 S:源极  D:漏极

P:Vgs<0,导通

N:Vgs>0,导通

GPIO模式

通过配置GPIO的端口配置寄存器,端口可以配置成以下8种模式

1.输入浮空

上拉电阻,下拉电阻关闭,施密特触发器打开,双MOS不导通,模拟输入,复用功能输入不经过。

读取电平,高阻态时,IO不确定,由外部决定

2.输入上拉

上拉电阻开启,下拉电阻关闭,施密特触发器打开,双MOS不导通,模拟输入,复用功能输入不经过。

读取电平,高阻态时,IO为高电平,由VDD供电,呈现高电平

3.输入下拉

上拉电阻关闭,下拉电阻开启,施密特触发器打开,双MOS不导通,模拟输入,复用功能输入不经过。

读取电平,高阻态时,IO为高电平,由VSS提供电平,呈现低电平

4.模拟功能

上拉电阻,下拉电阻关闭,施密特触发器关闭,双MOS不导通,复用功能输入不经过。

只经过模拟功能ADC、DAC

5.开漏输出

上拉电阻,下拉电阻关闭,施密特触发器打开P-MOS不导通,N-MOS导通,模拟输入,复用功能输入不经过,往ODR对应位写0,N-MOS管导通,写1则不导通,此时,在外部加入上拉电阻,可以输出1,否则不行。

6.开漏式复用功能

上拉电阻,下拉电阻关闭,施密特触发器打开,P-MOS不导通,模拟输入,复用功能输入不经过。

经过复用功能输出,不能输出高电平,必须有上拉才能输出高电平,有其他外设控制输出

7.推挽输出

上拉电阻,下拉电阻关闭,施密特触发器打开,往ODR对应写0,N-MOS管导通,写1则P-MOS管导通

经过ODR输出,不能输出高电平,必须有上拉才能输出高电平,有其他外设控制输出,在输出控制器加入反相器,则可以正常工作,可输出高低电平,驱动能力强,因为是由VDD引到外部,消耗比较少

8.推挽式复用功能

上拉电阻,下拉电阻关闭,施密特触发器打开,通过复用功能来输出,经过输出控制后加入反相器既可以让其输出1。优点同样可输出高电平,驱动能力强,并且由其他外设控制输出。

经过ODR输出,不能输出高电平,必须有上拉才能输出高电平,有其他外设控制输出,在输出控制器加入反相器,则可以正常工作,可输出高低电平,驱动能力强,因为是由VDD引到外部,消耗比较少

GPIO点灯

若要通过GPIO来点灯首先先配置GPIO,通过图中代码将其Mode、Pin 和Speed配置成自己想要 的模式,再通过GPIO_Write来输入想要的执行命令,如果想要制作流水灯,则使用while循环,再用延时函数去设置间隔

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值