STM32中控制I/O口的寄存器们

 引言  

 STM32的I/O口由软件配置,有八种模式:输入悬浮、输入上拉、输入下拉、模拟输入、开漏输出、推挽输出、推挽式复用功能及开漏复用功能。

每个I/O口由7个寄存器控制,分别是:


模式配置的端口寄存器 32位  CRL、CRH

数据寄存器  32位 IDR、ODR

置位/复位寄存器  32位 BSRR

复位寄存器  16位 BRR

锁存寄存器  32位 LCKR


主要介绍一下CRL、CRH、IDR、ODR


一 CRL、CRH

CRL控制低8位I/O口,CRH控制高8位I/O口,下图是《STM32参考手册》和《原子教你玩STM32》中关于CRL的介绍。CRL共32位,每四位控制一个I/O口,所以控制8个I/O口。CRH与CRL类似,就不做介绍了。

GPIOx->CRL&=0xfffffff0;//x:A~E;用哪一位I/O口先置零
GPIOx->CRL|=0x00000003;//设置I/O口的功能

 

二 IDR、ODR

IDR为端口输入寄存器,只用了低16位,且为只读寄存器。ODR为端口输出寄存器,也只用了低16位,可读可写,该寄存器读出的数据可以判断I/O口的输出状态,向该寄存器写数据可以控制I/O口的输出电平。下图为《STM32参考手册》中关于IDR和ODR的介绍。

GPIOx->ORD|=1<<5;//第五位输出高电平






更多精彩内容,欢迎关注【跟单片机谈恋爱】


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值