美文网首页
正点原子学习笔记——GPIO口

正点原子学习笔记——GPIO口

作者: BIGBEN_43da | 来源:发表于2020-01-27 14:42 被阅读0次

             精英版STM32F103ZET6一共有7组IO口,每组有16个IO,总计16*7=112个IO

             分别是GPIOA,GPIOB......GPIOG

            GPIO口还能复用作为其他功能引脚,如PA9可以作为串口发送端,PA10作为串口接收端

             TIP:IO口标记FT的可以容忍5V。

        1.GPIO工作方式


            4种输入模式:                                       4种输出模式:

               输入浮空                                                                              开漏输出

               输入上拉                                                                              开漏复用功能

               输入下拉                                                                               推挽式输出

                模拟输入                                                                              推挽式复用功能

       2. GPIO配置寄存器

           STM32F103ZET6一共有7组IO口,就有7个GPIO端口寄存器。(CRL,CRH,IDR,ODR,BSRR,BRR,LCKR)

           每组GPIO端口寄存器包括:

                两个32位配置寄存器(GPIOx_CRL,GPIOx_CRH),

               两个32位数据寄存器(GPIOx_IDR和GPIOx_ODR),

               一个32位置位/复位寄存器(GPIOx_BSRR),

               一个16位复位寄存器(GPIOx_BRR),

               一个32位锁定寄存器(GPIOx_LCKR)。

          2.1   端口配置低寄存器(GPIOx_CRL)

    CRL/CRH每四个位控制一个IO口,其中CRL控制0-7口

    例如CNF0  MODE0  控制的是IO0。先设MODE,如10;再设CNF0=10,就是设置IO0口为推挽输出模式,最大速度2MHZ。

    设MODE0=00  CNF=10,就是设置IO0口为上拉/下拉输入模式,至于到底是上拉还是下拉,由ODR寄存器决定。也就是说在输入模式下将ODR0设为0就是下拉模式,设为1就是上拉模式。

    2.2 端口配置低寄存器(GPIOx_CRH)

    CRH每四个位控制一个IO口,CRH控制8-15口

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

      0-15位数据,16-31位保留

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

    0-15位数据,16-31位保留

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

    低16位对应位设置为1,那么该IO口输出为高电平(改IO口的ODR输出为1),对应位设为0,则该IO口不产生任何影响(ODR不变)

    高16位作用相反。如:BRO=1,其余设为0,则P0=0,其他位不变

    2.6  端口位清除寄存器(GPIOx_BRR)

    作用和BSRR的高16位类似。一般使用BSRR的低16位,BRR的低16位。

    相关文章

      网友评论

          本文标题:正点原子学习笔记——GPIO口

          本文链接:https://www.haomeiwen.com/subject/bztljqtx.html