美文网首页
正点原子学习笔记——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