一、STM32F103C8T6--GPIO

STM32f103c8t6 32位Cortex-M3内核 RISC处理器,最高主频72MHZ,Flash:64KB,SRAM:20KB
片上外设:
I/O端口:

  • 多达37个GPIO引脚(支持复用功能)。
  • GPIO 端口支持输入、输出、上拉/下拉功能。

定时器

  • 3 个 16 位通用定时器(支持 PWM 输出)。********
  • 1 个高级定时器(支持多通道 PWM)。

通信接口:

  • 2 个 I2C 接口(支持主从模式)。
  • 2 个 SPI 接口(最大速率 18 MHz)。
  • 3 个 USART 接口(支持串口通信)。
  • 1 个 CAN 总线接口(支持高速通信)。

ADC:

  • 10 路 12 位 ADC 输入通道,支持单次、连续、扫描和不连续转换模式。
  • 最大采样速率 1 MHz,适合实时信号采集。

GPIO:

电气特性:
1、GPIO引脚支持5V容忍(即使供电3.3v,也可以承受5v信号输入)
2、I/O引脚电流驱动能力为20mA(可驱动LED、继电器等小负载)
3、可配置引脚速度:2MHz、10MHZ、50MHZ。适应不同疏导需求的信号。
8种工作模式:
1、浮空输入(Floating input):默认无上拉/下拉电阻,适用于信号可能长时间保持高阻态的应用(高阻态相当于开路,无电流驱动;高阻抗;不会干扰总线或电路)
适用于读取外部设备的信号或用于ADC模拟输入
2
例如:红外避障传感器;ADC输入;IIC总线也可以浮空输入SDA/SCL。
2、输入上拉/下拉(Pull-up/Pull-down input)
上拉:内部连接一个上拉电阻(连接到VCC),使引脚在未受外部信号作用时默认保持高电平。
下拉:内部连接一个下拉电阻(连接到GND),使引脚在未受外部信号作用时默认保存低电平。

3、推挽输出(Push-pull Output)
两种状态:

  • 高电平:当需要输出高电平时,P 型晶体管导通,N 型晶体管关闭,GPIO 引脚输出电压接近 VCC(通常为 3.3V 或 5V)。
  • 低电平:当需要输出低电平时,N 型晶体管导通,P 型晶体管关闭,GPIO 引脚与地(GND)连接,输出 0V。
    互补开关:P 型晶体管和 N 型晶体管交替导通/关断,确保输出电压稳定,不会出现高阻态(除非主动设置为输入模式)。

    推挽输出的特点:
1、高驱动能力:
推挽输出可以提供较大的电流驱动能力,通常可以达到 20mA 甚至更高,这使得推挽输出可以直接驱动 LED、蜂鸣器、继电器 等负载。
2、电平输出明确:
输出的电平要么是接近 VCC 的高电平,要么是接地的低电平,电平状态明确,不存在高阻态,确保信号稳定。
3、功耗相对较低:
在低电平或高电平输出时,推挽输出功耗较低,因为只有一个晶体管导通。/4、不适合总线型通信:
因为推挽输出会主动驱动高或低电平,不适用于 I2C 总线 这类需要多个设备共享同一引脚的场景。推挽输出的强制驱动会导致总线争用(Bus Contention)问题。

4、开漏输出
开漏输出是一种 GPIO 引脚的输出模式,通常用于 多设备共享总线或需要外部电路驱动的场合。在开漏输出模式下,GPIO 引脚只有低电平输出(导通时连接 GND),而没有直接的高电平输出。如果需要高电平,必须外接一个上拉电阻,使引脚在未被拉低时默认保持高电平。

开漏输出的特点
1、支持多设备总线:开漏输出允许多个设备共享同一根数据线,不同设备可以通过拉低总线电平发送信号,而不会造成冲突。这种机制非常适合像 I2C 这样多主从设备共享数据总线的通信协议。
例如:I2C 设备的 SDA 和 SCL 引脚都处于开漏模式,通过外接上拉电阻将总线保持在高电平。任何设备要发送信号时,只需拉低线上的电平,而不是主动输出高电平。这避免了多个设备同时输出高电平和低电平时的冲突(总线争用)。
2、需要外部上拉电阻:开漏输出模式下,GPIO 引脚本身不能输出高电平。因此,需要通过外部上拉电阻确保引脚默认是高电平。
3、可控驱动低电平:开漏输出模式可以拉低电平(接地),这使得它适合控制外部供电设备、LED 和继电器等需要低电平控制的场景。
4、保护设备免受冲突:在某些应用中,开漏输出可以防止多个设备同时驱动总线到不同的电平,避免损坏。

5、模拟输入
模拟输入是指 GPIO 引脚配置为接收模拟信号,并通过 ADC(模数转换器,Analog-to-Digital Converter) 将模拟信号转换为数字信号,供微控制器进行处理。
ADC 分辨率:12 位(输入范围 0V ~ Vref,可转换为 0 ~ 4095 的数字值)。(例如:将3.3V参考电压分成4095份,每一份就是电压的分辨率及 3.3/4095)

模拟输入的注意事项
1、信号处理:由于 ADC 转换可能受到噪声或其他干扰,通常需要对输入的模拟信号进行滤波(如使用硬件低通滤波器或软件平均滤波)。
2、参考电压的稳定性:ADC 转换的精度受参考电压的影响,参考电压(Vref)应尽量稳定,否则会导致 ADC 读数不准确。
3、采样时间的选择:采样时间与信号的响应时间有关,选择适当的采样时间可以提高精度,避免读取过多噪声。
4、电源电压和输入范围:输入电压应在 0 到 Vref 范围内。如果输入信号超过参考电压范围,需要使用分压器降低输入电压。

6、复用推挽输出
复用推挽输出是 GPIO 引脚的一种工作模式,在该模式下,GPIO 引脚不仅可以像普通推挽输出那样输出高电平和低电平,还可以复用为 外设功能引脚,如 USART、SPI、I2C、定时器输出等。通过复用功能,可以将 GPIO 引脚的输出与特定的外设模块关联,以执行特定的通信或控制任务。
7、复用开漏输出
复用开漏输出是 GPIO 的一种工作模式,GPIO 引脚被配置为 开漏输出 并且复用为特定外设功能。在这种模式下,GPIO 引脚可以与某些外设模块(如 I2C、SMBus 等总线型协议)相结合,作为外设功能引脚使用。

posted @ 2024-10-17 18:09  吃猫的渔  阅读(13)  评论(0编辑  收藏  举报