1.江科大STM32学习之GPIO输出(简略版)

本文详细介绍了STM32中GPIO的工作原理,包括GPIO引脚的选择、基本结构(寄存器和驱动器)、位结构示意图,以及不同模式如施密特触发器、模拟输入和复用功能。此外,还涵盖了GPIO的初始化、高低电平设置和实际应用示例,如蜂鸣器控制。
摘要由CSDN通过智能技术生成

1.什么是GPIO:

a.哪些引脚可以容忍5V电频(带FT的引脚口)

b.GPIO基本结构(APB2外设总线)

*寄存器是32位的但是引脚却只有16位所以寄存器只用到低16位(高16位是没有用到的)

        *寄存器对应GPIO状态——>GPIOA=0x01,PA0输出/输入高电平取决于GPIO输入输出模式

*驱动器作用接收来自寄存器的信号,然后将信号进行处理再转移有关的执行器(如灯)

c.GPIO位结构示意图

*从左往右可分为寄存器——驱动器——对应引脚

*从上到下可分为输入部分和输出部分:

        1.对应I/O引脚——输入驱动器——读出:

                保护电路如何运行:a.当输入电压大于VDD3.3V/5V时正向导通从而防止I/O脚高电平流入电路导致元器件烧坏        b.当输入电压小于0V时VSS正向导通直接从VSS流入I/O脚

                默认输入模式:当开关上面导通下面截止 输入电平为(VDD-VR)+VI/O(因为VR相对而言比较大所以属于弱上拉对输入电平影响不大),反之下拉输入模式为VSS  两边都截止则为浮空输入模式(引脚输入极易受外界影响)

这种输入模式就类似于重力->浮空输入模式就是在太空上,而有输入电平就相当于在地球上有了重力作用总还是要落到地面上的吗,虽然重力对于你的体重可能是九牛一毛但是还是让你无法飞起来

            施密特触发器:对电压整形

       高于上限输出为高,低于下限输出为低,在中间输出不变(防止信号发生抖动)

            模拟输入接入ADC上(如光敏)需要接受模拟量才能输出对应电压

             复用功能输入

        2.输出

                a.位写入对寄存器某一位进行控制

                b.整体写入对整个寄存器的16位进行整体编写

                c.推挽输出:当输出位高P-MOS导通输出接到VDD   反之输出接到VSS

                d.开漏输出模式:(一般用于通信协议输出和外接高电平输出)

                                             输出1,P-MOS没有用并且N-MOS也没有用即没有输入外部高电平就可输出5V电压

                                             输出0,N-MOS导通如果I/O口外接上拉高电平那么就直接输出高电平

d.GOIO八种模式(江科大3-1:21分钟)

*一个端口只能有一个输出但可以有多个输入

除了模拟输入会关闭数字输入,及不经过施密特触发器

输入模式下输出不能用,输出模式下输入可以用

实录电路连接图

写代码思路

1.时钟开启(使用各个外设前必须开启时钟,否则对外设的操作无效)STM32——理解时钟系统

RCC_APB2PeriphClockCmd

2.GPIO初始化

GPIO_InitTypeDef GPIO_InitStructure

结构体变量GPIO_InitStructure补充: 

GPIO_InitStructure.GPIO_Mode

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0 (有多个引脚的话通过|来连接)

如GPIO_Pin_0 |GPIO_Pin_1|GPIO_Pin_2

GPIO_InitStructure.GPIO_Speed  

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;//GPIO引脚,赋值为所有引脚

     

GPIO_Init(GPIOA, &GPIO_InitStructure)

3.设置高低电平

a.按位操作

GPIO_ResetBits(高电平)

GPIO_SetBits(低电平)

GPIO_WriteBit(GPIOA, GPIO_Pin_0, Bit_RESET(高)/SET(低));

通过延迟函数来实现led闪烁间隔

b.整体赋值

GPIO_Write(GPIOA, ~0x0001);//PA0引脚为低电平,其他引脚均为高电平

c.蜂鸣器:低电平,蜂鸣器鸣叫

高电平,蜂鸣器停止

拓展·STM32基本架构

  • 26
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值