STM32标准库学习笔记-2.GPIO

参考教程:【STM32入门教程-2023版 细致讲解 中文字幕】

标准库开发新建工程准备工作:

  1. 建立工程文件夹,Keil中新建工程,选择型号STM32F103C8T6
  2. 工程文件夹里建立Start、Library、User等文件夹,复制固件库里面的文件到工程文件夹
  3. 工程里对应建立Start、Library、User等同名称的分组,然后将文件夹内的文件添加到工程分组里
  4. 工程选项,C/C++,Include Paths内声明所有包含头文件的文件夹
  5. 工程选项,C/C++,Define内定义STM32F10X_MD,USE_STDPERIPH_DRIVER
  6. 工程选项,Debug,下拉列表选择对应调试器,Settings,Flash Download里勾选Reset and Run

STM32标准库工程架构:

GPIO简介:

  1. GPIO(General Purpose Input Output)通用输入输出口其接脚可以供使用者由程序控制自由使用
  2. 可配置为8种输入输出模式
  3. 引脚电平:0V~3.3V,部分引脚可容忍5V
  4. 输出模式下可控制端口输出高低电平,用以驱动LED、控制蜂鸣器、模拟通信协议输出时序等
  5. 输入模式下可读取端口的高低电平或电压,用于读取按键输入、外接模块电平信号输入、ADC电压采集、模拟通信协议接收数据等

GPIO基本结构:

驱动器能够增加IO口的驱动能力。GPIO挂载在APB2上(APB (Advanced Peripheral Bus) 低速总线,用来接低速外设的。)

GPIO配置模式:

GPIO标准库代码流程:

1.使能RCC(Reset and Clock Control)复位与时钟控制器

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);

2.定义GPIO_InitTypeDef 结构体,赋值初始化参数

GPIO_InitTypeDef GPIOA_InitTypeStruct;

GPIOA_InitTypeStruct.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出

GPIOA_InitTypeStruct.GPIO_Pin = GPIO_Pin_0; //0引脚

GPIOA_InitTypeStruct.GPIO_Speed = GPIO_Speed_50MHz; //50MHz速度

3.将结构体取地址传入GPIO_Init函数,指明初始化GPIO为GPIOA组(每一组有16个引脚)

GPIO_Init(GPIOA,&GPIOA_InitTypeStruct);

4.使用GPIO相关的库函数对GPIO进行操作

推挽输出和开漏输出

推挽式输出(Push-Pull Output):

推挽式输出电路是由互补的两个三极管构成,所谓推拉,推是指推出去,就是输出为高电平是,电流是由内流向外的,形象的称之为推;拉就是从外部向内部拉,当输出为低电平时,电流由负载流向内部,形象的称之为拉。

开漏输出(Open Drain Output) :

常说的与推挽输出相对的就是开漏输出,对于开漏输出和推挽输出的区别最普遍的说法就是开漏输出无法真正输出高电平,即高电平时没有驱动能力,需要借助外部上拉电阻完成对外驱动。下面就从内部结构和原理上说明为什么开漏输出输出高电平时没有驱动能力,以及进一步比较与推挽输出的区别。

驱动能力:又称之为带负载能力,说白了,就是指该电路的输出阻抗小,使得外接负载电路时,输出电路的输出电压能绝大部分加在负载上,就称之为带负载能力强。

八种配置模式的宏定义:

(1)GPIO_Mode_AIN 模拟输入

(2)GPIO_Mode_IN_FLOATING 浮空输入

(3)GPIO_Mode_IPD 下拉输入

(4)GPIO_Mode_IPU 上拉输入

(5)GPIO_Mode_Out_OD 开漏输出

(6)GPIO_Mode_Out_PP 推挽输出

(7)GPIO_Mode_AF_OD 复用开漏输出

(8)GPIO_Mode_AF_PP 复用推挽输出

相关推荐
silvamux_1 小时前
10款模型写种草笔记:可发布性、返工来源与成本数据缺口复盘
java·数据库·笔记
蒸蒸yyyyzwd2 小时前
kafka、redis、mysql不熟悉问题总结
笔记·八股
hgy89692 小时前
深度学习(小白笔记)——迁徙
人工智能·笔记·深度学习
摇滚侠2 小时前
《On Java 中文版 基础卷》阅读笔记 实现隐藏 11
java·笔记·python
辣知3 小时前
辣知·化智93 被历史尘封的鬻子
学习
youcans_4 小时前
【嵌入式软件AI编程】22. STM32 基础实验:GPIO外部中断
stm32·单片机·嵌入式硬件·ai编程·claude
未来_攻城狮4 小时前
STM32F407VGT6 芯片详解:高性能 Cortex-M4 MCU 入门指南
stm32·单片机·嵌入式硬件
xcLeigh4 小时前
FreeRTOS实战:用STM32+SEGGER打造工业级实时嵌入式系统
人工智能·stm32·单片机·嵌入式硬件·ai
硅基造物主4 小时前
STM32 从 0 到 1 做智能家居(十二):USART2 分时复用 —— ESP-12F + MQTT
网络·stm32·mqtt·智能家居·esp-12f
每天题库5 小时前
西藏安全员 A 证备考真题题库 强化重点知识刷题提升通过率
学习·安全·考试·题库·考证