【stm32学习】GPIO和输入输出模式

此篇顺序记录为听课

参考文章:【stm32】史上最详细的8种IO口模式_等不到星光等时光呀的博客-CSDN博客_io口模式

目录

一、GPIO

二、输入输出模式

输入浮空

MCU和CPU的区别

输入上拉

输入下拉

模拟输入

 开漏输出

 开漏复用功能

推挽输出

推挽复用功能

推挽输出和开漏输出的区别

 引脚模式配置

一、GPIO

我现在这块板有144个引脚

(有7组IO口:GPIOA-GPIOG,每个IO口有16个IO:例PA0-PA15,共有112个IO)

(STM32的每一个IO口都可以实现外部中断输入)

(每组GPIO有7个寄存器:两个32位配置寄存器——GPIOx_CRL、GPIOx_CRH

                                           两个32位数据寄存器——GPIOx_IDR、GPIOx_ODR

                                           一个32位置位\复位寄存器——GPIOx_BSRR

                                           一个16位复位寄存器——GPIOx_BRR

                                           一个32位锁定寄存器——GPIOx_LCKR)

(看stm32中文参考手册的GPIO的寄存器配置)

GPIOx_CRL(端口配置低寄存器)+GPIOx_CRH(端口配置高寄存器)

每一个IO口控制16个IO,每4位控制一个IO,所以这两个寄存器都为32位,总共控制16个IO(CRL控制0-7,CRH控制8-15)

关于每四位控制一个IO,两位控制选择输入or输出以及速度,两位控制输入\出的方式

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

这个寄存器为32位寄存器,他的低16位,每一位控制一个IO口,对应的是输入的是高电平还是低电平

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

与IDR相反,他的低16位,每一位控制输出的是高电平还是低电平

这个寄存器在输入模式下,可以决定输入是上拉还是下拉

GPIOx_BSRR(端口位设置\清除寄存器)

BSRR主要是控制ODR对应位的输出,BSRR的低16位为设置寄存器,为1对应位输出高电平,为0对ODR该位不产生影响;高16位为清除寄存器,为1对应的ODR为输出为低电平,为0不产生影响

【为什么ODR自己可以控制输出IO的高低电平,还需要BSRR呢?

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值