STM32中控制IO口的寄存器们

    xiaoxiao2025-11-20  23

     引言  

     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;//第五位输出高电平

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

    转载请注明原文地址: https://ju.6miu.com/read-1304392.html
    最新回复(0)