STM32的3种不同GPIO驱动
cathy -- 周三, 03/03/2021 - 15:26寄存器版其实就是把ST标准外设库拷贝出来,可以简化一些操作。
寄存器版其实就是把ST标准外设库拷贝出来,可以简化一些操作。
本文将根据STM32F207参考手的中GPIO框图讲解GPIO功能。
很多电子产品有状态指示灯,比如电视机:
待机状态亮红灯
开机状态亮绿灯
实现起来很简单,微控制器MCU的两个GPIO分别控制就行:
不过资源总是紧张的,有时候会碰到GPIO不够用的情况。
如果只用1个GPIO,可不可以实现控制两个LED灯呢?
要实现4种状态:
红灯亮,绿灯灭
红灯灭,绿灯亮
都灭
都亮
直接上电路:
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内部都有这样的一个电路结构,这个结构在本文下面会具体介绍。
这边的电路图稍微提一下: