STM32F10x中的端口寄存器

发布者:CyborgDreamer最新更新时间:2020-09-22 来源: eefocus关键字:STM32F10x  端口寄存器 手机看文章 扫描二维码
随时随地手机看文章

GPIO(General Purpose Input Output)是通用输入/输出端口;
APB2ENR 高级外设总线(Andvaced Peripheral Bus)使能(Enable)寄存器;外设的对应位使能(置1)后,该外设才可以使用。


APB2RSTR 高级外设总线(Andvaced Peripheral Bus)复位(Reset)寄存器;当外设出现异常的时候可以通过复位寄存器里面的对应位设置,实现该外设的复位,然后重新配置这个外设达到让其重新工作的目的。一般在系统刚开始配置外设的时候,都会先执行复位该外设的操作。


GPIOx_CRL (x=A..E) 配置低(Config Low)寄存器
GPIOx_CRH (x=A..E) 配置高(Config High)寄存器、
MODEy[1:0]:端口x的模式位;软件通过这些位配置相应的I/O端口。
00:输入模式(复位后的状态) 
01:输出模式,最大速度10MHz
10:输出模式,最大速度2MHz 
11:输出模式,最大速度50MHz
CNFy[1:0]:端口x的配置位;软件通过这些位配置相应的I/O端口。
在输入模式(MODE[1:0]=00):
00:模拟输入模式 
01:浮空输入模式(复位后的状态) 
10:上拉/下拉输入模式 
11:保留 
在输出模式(MODE[1:0]>00): 
00:通用推挽输出模式 
01:通用开漏输出模式 
10:复用功能推挽输出模式 
11:复用功能开漏输出模式

GPIOx_IDR (x=A..E) 输入数据(Input Data)寄存器
IDRy[15:0]:端口输入数据;这些位为只读并只能以字(16位)的形式读出。读出的值为对应I/O口的状态。

GPIOx_ODR (x=A..E) 输出数据(Output Data)寄存器
ODRy[15:0]:端口输出数据;这些位可读可写并只能以字(16位)的形式操作。
注:对GPIOx_BSRR(x=A…E),可以分别地对各个ODR位进行独立的设置/清除。

GPIOx_BSRR(x=A..E) 位设置/清除(Bit Set/Reset)寄存器
BRy[15:0]: 清除端口x的位;这些位只能写入并只能以字(16位)的形式操作。 
0:对对应的ODRy位不产生影响 
1:清除对应的ODRy位为0 
BSy[15:0]: 设置端口x的位;这些位只能写入并只能以字(16位)的形式操作。 
0:对对应的ODRy位不产生影响 
1:设置对应的ODRy位为1
注:如果同时设置了BSy和BRy的对应位,BSy位起作用。

GPIOx_BRR(x=A..E) 位清除(Bit Reset)寄存器
BRy[15:0]: 清除端口x的位;这些位只能写入并只能以字(16位)的形式操作。 
0:对对应的ODRy位不产生影响 
1:清除对应的ODRy位为0 

GPIOx_LCKR(x=A..E) 配置锁定(Lock)寄存器
当执行正确的写序列设置了位16(LCKK)时,该寄存器用来锁定端口位的配置。位[15:0]用于锁定GPIO端口的配置。在规定的写入操作期间,不能改变LCKP[15:0]。当对相应的端口位执行了LOCK序列后,在下次系统复位之前将不能再更改端口位的配置。每个锁定位锁定控制寄存器(CRL, CRH)中相应的4个位。
LCKK:锁键(Lock Key);该位可随时读出,它只可通过锁键写入序列修改。 
0:端口配置锁键位未激活 
1:端口配置锁键位被激活,下次系统复位前GPIOx_LCKR寄存器被锁住。 
锁键的写入序列:写1 -> 写0 -> 写1 -> 读0 -> 读1 
最后一个读可省略,但可以用来确认锁键已被激活。 
注:在操作锁键的写入序列时,不能改变LCK[15:0]的值。 
操作锁键写入序列中的任何错误将不能激活锁键。 
LCKy[15:0]: 端口x的锁位;这些位可读可写但只能在LCKK位为0时写入。 
0:不锁定端口的配置 
1:锁定端口的配置 


关键字:STM32F10x  端口寄存器 引用地址:STM32F10x中的端口寄存器

上一篇:STM32F103RB中的串口和端口
下一篇:STM32F10x的LCD(ILI9320)显示

推荐阅读最新更新时间:2024-11-04 18:13

STM32 通用输入输出端口GPIO BRR、BSRR、ODR寄存器详解
详细页面:http://alanzjl.sinaapp.com/2015/02/gpio_brr_bsrr_odr/ BRR、BSRR、ODR都是用来控制16位针脚的。 其中,BRR和ODR高16位都不可用(Reserved),使用低16位控制针脚,而BSRR高16位和低16位皆可用,都用来控制16位针脚。 BRR与BSRR使用方法 BRR和BSRR的最显著用处就是可以只改变某一个或某几个针脚的值而不改变其他。 1.BRR:如果程序对其某针脚赋值0,则该针脚维持原值不变,比如BRR的位0本来为1,则GPIOx- BRR=0x0语句之后该位值还为1。若对其赋值1,则该位值变为0(即复位值),比如BRR的位0本来为1,则GPI
[单片机]
STM32 通用输入输出<font color='red'>端口</font>GPIO BRR、BSRR、ODR<font color='red'>寄存器</font>详解
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved