2021.4.7 第二周 STM32F1 GPIO的工作原理的笔记

GPIO的工作原理

GPIO基本结构和工作方式

GPIO寄存器说明

GPIO引脚说明

一、GPIO介绍

GPIO:就是一个引脚作为输入或者输出。

GPIO的八种工作模式:输入输出是相对于CPU,四种输入、四种输出模式及四种输出最大速度

输入:外部数据输入到开发板

输出:开发板的数据输出到外部设备

1.3 STM32引脚说明

  1. STM32F10ZET6:
    – 一共有7组IO口
    – 每组IO口有16个IO
    – 一共16*7=112个IO
    GPIOA,GPIOB-----GPIOG
    战舰/精英版板子都是144脚芯片,有7组IO

    而mini板子是64脚的RCT6

  2. STM32F103RCT6
    – 一共有4组IO口
    – 一共16*3+3=51个IO
    GPIOA0—A15
    GPIOB0—B15
    GPIOC0—C15
    GPIOD0—D2

STM32的大部分引脚除了当GPIO外,还可以复用为外设功能引脚(串口)

1.1 GPIO基本结构

在这里插入图片描述
FT的意思是IO口可以容忍5V电压(STM32的大部分IO口可以容忍5V)

1.2 GPIO工作方式

GPIO支持
4种输入模式
浮空输入
上拉输入
下拉输入
模拟输入

4种输出模式
开漏输出
开漏复用输出
推挽输出
推挽复用输出

GPIO还支持三种最大翻转速度(2MHz、10MHz、50MHz)

浮空输入

在这里插入图片描述
浮空输入模式下,I/O端口的电平信号直接进入输入数据寄存器。也就是说,I/O的电平状态是不确定的,完全由外部输入决定;如果在该引脚悬空(在无信号输入)的情况下,读取该端口的电平是不确定的。

上拉输入

在这里插入图片描述
上拉输入模式下,I/O端口的电平信号直接进入输入数据寄存器。但是在I/O端口悬空(在无信号输入)的情况下,输入端的电平可以保持在高电平;并且在I/O端口输入为低电平的时候,输入端的电平也还是低电平。

下拉输入

在这里插入图片描述
下拉输入模式下,I/O端口的电平信号直接进入输入数据寄存器。但是在I/O端口悬空(在无信号输入)的情况下,输入端的电平可以保持在低电平;并且在I/O端口输入为高电平的时候,输入端的电平也还是高电平。

模拟输入

在这里插入图片描述
模拟输入模式下,I/O端口的模拟信号(电压信号,而非电平信号)直接模拟输入到片上外设模块

开漏输出

在这里插入图片描述
开漏输出模式下,通过设置位设置/清除寄存器或者输出数据寄存器的值,途经N-MOS管,最终输出到I/O端口。**这里要注意N-MOS管,当设置输出的值为高电平的时候,N-MOS管处于关闭状态,此时I/O端口的电平就不会由输出的高低电平决定,而是由I/O端口外部的上拉或者下拉决定;当设置输出的值为低电平的时候,N-MOS管处于开启状态,此时I/O端口的电平就是低电平。**同时,I/O端口的电平也可以通过输入电路进行读取;

开漏复用输出

在这里插入图片描述

开漏复用输出模式,与开漏输出模式很是类似。只是输出的高低电平的来源,不是让CPU直接写输出数据寄存器,取而代之利用片上外设模块的复用功能输出来决定的。

推挽输出

在这里插入图片描述
推挽输出模式下,通过设置位设置/清除寄存器或者输出数据寄存器的值,途经P-MOS管和N-MOS管,最终输出到I/O端口。**这里要注意P-MOS管和N-MOS管,当设置输出的值为高电平的时候,P-MOS管处于开启状态,N-MOS管处于关闭状态,此时I/O端口的电平就由P-MOS管决定:高电平;当设置输出的值为低电平的时候,P-MOS管处于关闭状态,N-MOS管处于开启状态,此时I/O端口的电平就由N-MOS管决定:低电平。**同时,I/O端口的电平也可以通过输入电路进行读取;注意,此时I/O端口的电平一定是输出的电平。

推挽复用输出

在这里插入图片描述
推挽复用输出模式,与推挽输出模式很是类似。只是输出的高低电平的来源,不是让CPU直接写输出数据寄存器,取而代之利用片上外设模块的复用功能输出来决定的。

1.3 附:M3和M4的IO口的基本结构及区别:上下拉电阻的所在位置的区别

在这里插入图片描述
在这里插入图片描述

2.1 GPIO中的寄存器说明

一个端口模式寄存器(GPIOx_MODER)
一个端口输出类型寄存器(GPIOx_OTYPER)
一个端口输出速度寄存器(GPIOx_OSPEEDR)
一个端口上拉下拉寄存器(GPIOx_PUPDR)
一个端口输入数据寄存器(GPIOx_IDR)
一个端口输出数据寄存器(GPIOx_ODR)
一个端口置位/复位寄存器(GPIOx_BSRR)
一个端口配置锁存寄存器(GPIOx_LCKR)
两个复用功能寄存器(低位GPIOx_AFRL& GPIOx_AFRH)

2.2具体配置

1. 端口模式寄存器(GPIOx_MODER)

该寄存器有32位,每2位控制一个IO口
在这里插入图片描述

2.端口输出类型寄存器(GPIOx_OTYPER)

只用到低16位,1位控制一个IO
在这里插入图片描述

3.端口输出速度寄存器 (GPIOx_OSPEEDR)

同理,也是两位配置一个IO
在这里插入图片描述

4. 端口上拉/下拉寄存器 (GPIOx_PUPDR)

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值