首页 > 其他分享 >学习STM32的第一个外设GPIO(2)——GPIO的输出

学习STM32的第一个外设GPIO(2)——GPIO的输出

时间:2023-04-07 20:01:24浏览次数:33  
标签:输出 VSS 引脚 MOS STM32 外设 寄存器 GPIO 输入

【1】GPIO位结构

 

 【1-1】输入部分

  1. 为了保护IO引脚,上下各接一个保护二极管,用于限幅输入电压。
  2. 上面二极管接VDD(3.3V),下面的二极管接VSS(0V)。
  3. 如果输入电压比3.3V还要高,上面二极管导通,输入电压产生的电流会直接流入VDD而不是内部电流。
  4. 如果输入电压比0V还要低,相对于VSS电压是负电压,下方二极管导通,电流直接从VSS流出去,不会汲取内部电流。
  5. 如果电压在0到3.3V之间,两个二极管均不导通

【1-1-2】上拉电阻和下拉电阻

  1. 上拉输入模式(默认为高电平的输入模式)——上面导通,下面断开。引脚悬空时,上拉电阻保证引脚的高电平
  2. 下拉输入模式(默认为低电平的输入方式)——上面断开,下面导通
  3. 浮空输入模式——上下都断开
  4. 其作用是为了给输入提供一个默认的输入电平。如果什么都不接,输入处于一个浮空的状态,引脚的输入电平极易受到外界干扰而改变。为了避免引脚悬空导致输入数据不确定,需要加上上拉或下拉电阻。

【1-1-3】用肖特基管构成的施密特触发器:对输入电压进行整形(高于上限输出高,低于下限输出低)

 

 【1-1-4】整形后的波形写入数据寄存器,用程序读取数据寄存器对应的某一位数据 = 端口的输入电平。

【1-2】输出部分:

  1. 如果需要对某一位进行置1操作,在位设置寄存器的对应位写1即可(对应位置1,剩下为0的位保持不变)。这样的操作只操作1位不影响其他位,而且是一步到位。
  2. 如果需要对某一位进行置0操作,在位清除寄存器的对应位写1即可

【1-3】输出控制在之后接到了两个MOS管

 

  1.  MOS管是一种电子开关,由信号控制开关的导通和关闭,开关负责将IO口接到VDD或者VSS。
  2. 在推挽输出模式下,P-MOS和N-MOS均有效。数据寄存器为1时,上管导通,下管断开,输出直接接到VDD,输出高电平。数据寄存器为0时,上管断开,下管导通,输出直接接到VSS,输出低电平。
  3. 在开漏输出模式下,P-MOS无效,只有N-MOS在工作。数据寄存器为1时,下管断开,输出全断,处于高阻模式。数据寄存器为0时,下管导通,输出直接接到VSS,输出低电平。
  4.  

标签:输出,VSS,引脚,MOS,STM32,外设,寄存器,GPIO,输入
From: https://www.cnblogs.com/woyaobiye/p/17296373.html

相关文章

  • STM32:带 4G LTE 调制解调器的物联网 – 硬件
    STM32:带4GLTE调制解调器的物联网–硬件使用STM32微控制器和SIMCOM4GGSM调制解调器的工业物联网电子电路设计和PCB设计课程课程英文名:STM32InternetOfThingswith4GLTEModem-Hardware此视频教程共28.7GB,中英双语字幕,画质清晰无水印,源码附件全课程地址:https://......
  • 关于GPIO部分重映射以及完全重映射的理解
    关于重映射功能中ETR后面的数字编号,可参考下图理解,表示不同的引脚以及是部分重映射还是完全重映射。 以TIM2为例,可以看到默认映射对应的引脚为PA0、PA1、PA2、PA3;部分重映射的引脚为PA15、PB3、PA2、PA3,只改变了部分引脚,所以叫部分重映射;设置为完全重映射时为PA15,PB3,PB10和PB1......
  • 平台采用某米1代扫地机。 stm32f103真实项目程序
    平台采用某米1代扫地机。stm32f103真实项目程序。c原程序keil工程。目前只有32端代码能实现延边避障防跌落充电等功能。   适合需要学习项目与代码规范的工程师硬件驱动包含陀螺仪姿态传感器bmi160、电源管理bq24733等。软件驱动包括IIC、PWM、SPI、多路ADC与DMA、编......
  • STM32]GPIO工作原理详解
     GPIO是通用输入/输出端口的简称,是STM32可控制的引脚。GPIO的引脚与外部硬件设备连接,可实现与外部通讯、控制外部硬件或者采集外部硬件数据的功能。 STM32F103ZET6芯片为144脚芯片,包括7个通用目的的输入/输出口(GPIO)组,分别为GPIOA、GPIOB、GPIOC、GPIOD、GPIOE、GPIOF、GPIOG,同......
  • STM32中,对GPIO_Init(GPIOB, &GPIO_InitStructure)的理解
    //笔者使用的硬件平台为STM32F103ZET6战舰版GPIO_InitTypeDefGPIO_InitStructure;GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;//指定GPIO-端口配置PB5->LED0GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;//指定模式-推挽输出GPIO_InitStructure.GPIO_Speed=GPIO_......
  • 痞子衡嵌入式:利用i.MXRT1xxx系列ROM集成的DCD功能可轻松配置指定外设
    大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是利用i.MXRT1xxx系列ROM集成的DCD功能可轻松配置指定外设。关于i.MXRT1xxx系列芯片BootROM中集成的DCD功能这个话题,痞子衡早就想写了,但是一直没有动笔,毕竟这个话题比较生涩,单独讲会比较枯燥。最近痞......
  • stm32的学习笔记1
    一目录结构管理  Libraries是放官方固件库的MDK-ARM是放产生的文件的,工程存放的目录USERS是放自己写的代码的然后是一个解释文件README在MDK-ARM目录里还要创建两个文件夹,分别是Listings和Objects二系统架构  在三个小方块处添加系统架构,StdPeriph-Driver是一些......
  • 操纵GPIO
    开启外设时钟使用复位和时钟控制RCC驱动程序(stm32f10x_rcc.c)有3个针对不同总线连接的外设时钟命令函数•RCC_AHBPeriphClockCmd•RCC_APB1PeriphClockCmd•RCC_APB2PeriphClockCmdGPIO通过APB2总线连接系统开启GPIO外设时钟的函数RCC_APB2PeriphClockCmd 如:开启GPIOA外......
  • stm32-----01初识GPIO
    GPIO_Init(GPIO_TypeDef*GPIOx,GPIO_InitTypeDef*GPIO_InitStruct)  -----使用结构体的参数来初始化GPIO口,一般初始化外设都用这个函数完成先定义一个结构体变量给结构体赋值调用这个函数  GPIO的4个写入函数GPIO_SetBits(GPIO_TypeDef*GPIOx,uint16_tGP......
  • GPIO原理与寄存器
    GPIO的工作方式输入浮空输入模式输出缓冲器被禁止,施密特触发输入被激活,不接上拉和下拉电阻,出现在I/O脚上的数据在每个APB2时钟被采样到输入数据寄存器。 上拉输入模式输出缓冲器被禁止,施密特触发输入被激活,上拉电阻接通,不接下拉电阻,当I/O引脚无输入信号时,读取到的数据为1,......