GPIO
绝妙!1个GPIO控制2个LED显示4种状态,什么?你不信?
很多电子产品有状态指示灯,比如电视机:
-
待机状态亮红灯
-
开机状态亮绿灯
实现起来很简单,微控制器MCU的两个GPIO分别控制就行:
不过资源总是紧张的,有时候会碰到GPIO不够用的情况。
如果只用1个GPIO,可不可以实现控制两个LED灯呢?
要实现4种状态:
-
红灯亮,绿灯灭
-
红灯灭,绿灯亮
-
都灭
-
都亮
直接上电路:
【STM32】GPIO工作原理(八种工作方式超详细分析,附电路图)
STM32的GPIO介绍
STM32引脚说明
GPIO是通用输入/输出端口的简称,是STM32可控制的引脚。GPIO的引脚与外部硬件设备连接,可实现与外部通讯、控制外部硬件或者采集外部硬件数据的功能。
STM32F103ZET6芯片为144脚芯片,包括7个通用目的的输入/输出口(GPIO)组,分别为GPIOA、GPIOB、GPIOC、GPIOD、GPIOE、GPIOF、GPIOG,同时每组GPIO口组有16个GPIO口。通常简略称为PAx、PBx、PCx、PDx、PEx、PFx、PGx,其中x为0-15。
STM32的大部分引脚除了当GPIO使用之外,还可以复用位外设功能引脚(比如串口),这部分在【STM32】STM32端口复用和重映射(AFIO辅助功能时钟) 中有详细的介绍。
GPIO基本结构
每个GPIO内部都有这样的一个电路结构,这个结构在本文下面会具体介绍。
这边的电路图稍微提一下: