×
单片机 > 单片机程序设计 > 详情

STM32F051学习- GPIO

发布时间:2020-06-01 发布时间:
|

stm32F051 GPIO 有  电源引脚(三根),复位引脚(两根boot0,boot1,配置选择三种不同的启动模式,从主闪存存储器,系统存储器或者内置SRAM启动,代码可以放到三个不同的地方),GPIOF0~1(两根,可用于外接晶振,本例中外接8MHz的HSE晶振),GPIOA0~15(16根),GPIOB1~7(8根)。

引脚顺序:在芯片上四个角的某一个角上会有标志,从标志位置开始逆时针旋转,就是引脚的标号顺序。


除复位引脚和启动引脚之外,其它的GPIOA,B,F都是通用引脚,用于与外界沟通。


STM32F051-GPIO常用寄存器


 4个32位配置寄存器 


        GPIOx_MODER,  GPIOx_OTYPER,  GPIOx_OSPEEDR,  GPIOx_PUPDR


 2个32位数据寄存器


      GPIOx_IDR 、GPIOx_ODR 


1 个32 位置位 / 复位寄存器


      GPIOx_BSRR


2 个 32 位复用功能配置寄存器 


     GPIOx_AFRH 、GPIOx_AFRL


注:每一组GPIO端口(GPIOA, GPIOB, GPIOF)都有一套上述的寄存器去配置它自己的功能


GPIOx_MODER模式寄存器, 每两位配置一个GPIO口 32位寄存器正好可以配置一组(16个GPIO)


00  01 :输入输出模式,  10,: 可以配置成复用功能,例如GPIOB6~7 可复用成I2C的时钟线或数据线,11:可以配置为ADC数模转换功能。


GPIOx_OTYPER类型寄存器,每1位配置一个GPIO口 32位寄存器只需要0~15位,其他的保留


 配置引脚为推挽输出或开漏输出。


推挽:可以提供稳定的高低电平输出,低电平时接地,高电平时接高电平


开漏:就是不输出电压,低电平时接地,高电平时悬空,如果外接上拉电阻,则在输出高电平时电压会拉到上拉电阻的电源电压。


GPIOx_OSPEEDR类型寄存器,用于控制GPIO口工作速速。


根据外接的芯片的需要频率配置。


GPIOx_PUPDR 类型寄存器, 为GPIO接上下拉电阻。

 在51单片机使用时,通常会看到有排阻存在, 这就是上下拉电阻。对于开漏输出需要外接上下拉电阻,STM32芯片已经把上下拉电阻集成到了芯片内部,只需要配置相应引脚的寄存机就可以了。


 


GPIOx_IDR 、GPIOx_ODR 、GPIOx_BSRR 用于读写GPIO的高低电平状态。


GPIOx_AFRH 、GPIOx_AFRL 复用功能寄存器,用于配置GPIO口复用为I2C 、中断、SPI、uart、i2S等的哪一种。



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
ARM 汇编的必知必会