寄存器点亮LED

GPIO的工作模式

  • 输入模式(模拟/浮空/上拉/下拉)

    输入模式中,施密特触发器打开,输出被禁止,可以通过输入数据寄存器GPIOx_IDR读取I/O状态。

    • 上拉/下拉:默认的电平由上拉或者下拉决定
    • 浮空:输入的电平不确定,完全由外部的输入决定,一般接按键的时候用的是这个模式
    • 模拟:用于ADC采集
  • 输出模式

    输出数据寄存器GPIOx_ODR可控制I/O输出高低电平

    • 开漏:只有N-MOS管工作,输出寄存器可控制I/O输出高阻态或低电平,输出速度可配置,有2MHZ,10MHZ,50MHZ的选项,此处输出速度即I/O支持的高低电平状态最高切换频率,支持的频率越高,功耗越大,如果功耗要求不严格,把速度设置成最大即可

      输出模式下施密特触发器打开,输入可用,通过输入数据寄存器GPIOx_IDR可读取I/O的实际状态

  • 复用功能(推挽/开漏)

    输出使能,输出速度可配置,可工作在开漏及推挽模式,但是输出信号源于其他外设,输出数据寄存器GPIOx_ODR无效,输入可用,通过输入数据寄存器可获取I/O实际状态,但一般直接用外设的寄存器来获取该数据信号

开启外设时钟

设置完 GPIO 的引脚,控制电平输出,以为现在总算可以点亮 LED 了吧,其实还差最后一步。由 于 STM32 的外设很多,为了降低功耗,每个外设都对应着一个时钟,在芯片刚上电的时候这些 时钟都是被关闭的,如果想要外设工作,必须把相应的时钟打开

所有的GPIO都挂载到APB2总线上,具体的时钟由APB2外设时钟使能寄存器(RCC_APB2ENR)来控制

B2外设时钟使能寄存器(RCC_APB2ENR)来控制

image-20230304162809974

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值