单片机
返回首页

STM32的GPIO口使用

2017-10-31 来源:eefocus

STM32的GPIO类似于51单片机的IO口。只不过STM32的IO口使用时要配置输入/输出模式、速度、而且时钟使能后才能使用。

配置相关代码:

GPIO_InitTypeDef   GPIO_InitStructure;//定义初始化类型结构体

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//打开GPIOA时钟

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;//引脚

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;//速度                     

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;//模式

GPIO_Init(GPIOA,&GPIO_InitStructure);//初始化

GPIO电路结构:

STM32的GPIO口使用输出模式:

1.推挽输出_Out_PP

电路如下图一:

输出的高低电平取决于芯片的电压,每次只用一个管子导通,功耗小,速度快,负载能力强

STM32的GPIO口使用

2.开漏输出_Out_OD

电路图入上图二:

       输出端相当于三极管的集电极,想要输出高电平必须接上拉电阻和电源,高电平取决于外部电压,适合做电流型驱动,上拉电阻越大逻辑电平转换速度越慢,功耗越小,可以将多个开漏输出引脚连起来,通过连接上拉电阻,组成线与。

3.复用推挽输出_AF_PP

4.复用开漏输出_AF_OD

    3和4为GPIO复用为第二功能引脚时使用,数据与片内外设交互而不是GPIO数据寄存器。

输入模式:

1.上拉输入_IPU

    IO内部接上拉电阻的输入,默认输入为1

2.下拉输入_IPD

     IO内部接上下电阻的输入,默认输入为0

3.浮空输入_IN_FLOATING

    逻辑器件的输入引脚既没接高电平也没接低电平,呈高阻态,IO的电平不确定,由外界输入决定,悬空时,输入电平不确定。上下拉电阻为几十K,如果设置为上下拉模式,当引脚长期处于低高电平时,功耗就会很大,此时可以设为浮空输入模式,然后外接比较大的上下拉电阻来降低功耗。

4.模拟输入_AIN

    配置为模拟输入时,读取输入数据寄存器值为0,模拟即模拟信号的意思,DAC输出和AD输入引脚都配置为模拟输入模式。


进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • 用数字电路CD4069制作的万能遥控轻触开关

  • 红外线探测报警器

  • 短波AM发射器电路设计图

  • RS-485基础知识:处理空闲总线条件的两种常见方法

  • 带有短路保护系统的5V直流稳压电源电路图

  • 基于ICL296的大电流开关稳压器电源电路

    相关电子头条文章