STM32学习笔记2021/01/07

关于stm32的寄存器

引言

STM32F103ZET6共有144个引脚,共有7组每组16个共计112个I/O端口;每个GPIO端口有两个32bit的配置寄存器(GPIOx_CRL,GPIOx_CRH),两个32bit的数据寄存器(GPIOx_IDR,GPIOx_ODR),一个32bie的置位/复位寄存器(GPIOx_BSRR),一个16bit的复位寄存器和一个32bit的锁定寄存器(GPIOx_LCKR)。

GPIO输入输出模式概述

输入模式
1.输入浮空模式

原理图如下:输入浮空模式原理图
数据从IO口读入,同时上下拉电阻不启用,直接由电压转化为高低电平,并将数据储存到数据寄存器。

2.输入上拉模式

原理图如下:
在这里插入图片描述
与输入浮空模式的区别是该模式启动了上拉电阻,升高电压

3.输入下拉模式

原理图如下:
在这里插入图片描述
将下拉电阻打开,降低电压。

4.模拟输入

原理图如下:
在这里插入图片描述
该模式用于ad转换,将模拟量转化为数字量。

输出模式
1.开漏输出模式

原理图如下:
在这里插入图片描述
数据在寄存器发出后,经过N-MOS管,如果输出1,则MOS管截止,输出电压由外部上下拉电阻决定;如果输出0,MOS管导通,将电压拉直VSS,即输出为0.

2.推挽输出模式

原理图如下:
在这里插入图片描述

在推挽输出模式下,两个MOS管导通。如果输出1,则P-MOS管导通,N-MOS管截止,输出为1;如果输出0,则相反。

3.推挽复用输出模式和开漏复用输出模式

将读写控制器换做具有复用功能的外设,其余工作相同。

4.其他

在输出时,IO口的输出也可以作为输入读取。

GPIO寄存器概述
1.端口配置低寄存器(GPIOx_CRL)

偏移地址:0x00
复位值:0x4444 4444
相关配置如下:
在这里插入图片描述
说明:端口配置低寄存器负责配置0-7口,每一个端口由4bit控制,低两位为mode,即工作模式(输入输出和输出速度),高两位为具体工作模式,例如如果为0x 01 00,则为浮空输入模式,如果为 0x 00 10 ,则为推挽输出模式,最高速度为2MHz。

2.端口配置高控制器(GPIOx_CRH)

相关配置与端口配置低寄存器相同,负责8-15口的配置。
相关配置如下:
在这里插入图片描述

3.端口输出数据寄存器(GPIOx_ODR)

地址偏移:0CH
复位值:0x0000 0000
相关配置如下:
在这里插入图片描述
说明:
该寄存器只有第十六位可以使用,每一个位对应相应的IO口,在输出模式下,如需某个端口输出为0,则需配置相应的位为0,如需输出1,则需要在相应的位配置为1.
在输入模式下,该寄存器也可以配置输入的上拉模式或者下拉模式,1为上拉,0为下拉。

4.端口位设置/清除寄存器(GPIOx_BSRR)

地址偏移:0x10
复位值: 0x0000 0000
相关设置如下:
在这里插入图片描述
解释配图:
在这里插入图片描述
说明:在输出数据时,可以直接读写ODR寄存器,但是这种操作会导致该组端口输出只有高电平或者低电平,为保证只有一个端口输出高电平或者低电平,采取BSRR寄存器间接写ODR寄存器的方法。在BSRR低16位,如需输出高电平,则只需设置相应位位1,其他位为0(0是指不影响原输出);如需要输出低电平则需要在相应的高位设置为1,其他高位为0(不影响),在高位1代表清除低位,即重新设置为0(与运算),0代表不影响。

5.端口清除寄存器(GPIOx_BRR)

地址偏移:0x14
复位值:0x0000 0000
相关配置如图:
在这里插入图片描述
说明:作用相当于BSRR寄存器,在平时使用时,一般使用BSRR低16位和BRR低16位。

6.端口输入数据寄存器(GPIOx_IDR)

地址偏移:0x08
复位值:0x0000 XXXX
相关结构如下:
在这里插入图片描述
说明:高16位保留(且只为0),只留下低16位用于读取数据,不可写入,读出值为对应端口状态。

7.端口配置锁定寄存器(GPIOx_LCKR)

地址偏移:0x18
复位值:0x0000 0000
相关配置如下:
在这里插入图片描述
说明:该寄存器用于保护输出的正确序列不被破坏,在寄存器的低16位写入之后不可更改,直到程序下次复位。每一个锁定位定位控制寄存器(CRL和CRH)中对应的四个位,即一个锁定位对应一个IO口。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值