路由器电脑可以做网站主机,领动做的企业网站怎么样,班级优化大师免费下载安装,rio门户网站的制作订阅#xff1a;新手可以订阅我的其他专栏。免费阶段订阅量1000 python项目实战 Python编程基础教程系列#xff08;零基础小白搬砖逆袭) 作者#xff1a;爱吃饼干的小白鼠。Python领域优质创作者#xff0c;2022年度博客新星top100入围#xff0c;荣获多家平台专家称号。… 订阅新手可以订阅我的其他专栏。免费阶段订阅量1000 python项目实战 Python编程基础教程系列零基础小白搬砖逆袭) 作者爱吃饼干的小白鼠。Python领域优质创作者2022年度博客新星top100入围荣获多家平台专家称号。 最近更新 合肥中科深谷嵌入式项目实战——人工智能与机械臂二 我们上一节我们介绍了keil软件安装教程本文接下来介绍LED灯闪烁的功能。
⭐️STM32控制GPIO完成点亮LED灯
我们这里使用的是STM32芯片我们用STM32控制GPIO完成点亮LED灯。
什么是GPIO?
那么什么是GPIO呢 GPIO是指通用输入输出它是一种数字接口可以让单片机和其他电子设备交换数据。具体来说GPIO是一组用于控制电路的引脚其可以通过软件进行配置从而实现输入和输出功能。通过GPIO可以实现与外部设备的通信如LED灯按钮传感器等等。GPIO在嵌入式系统和单片机控制中应用广泛是控制硬件的重要手段之一。 GPIO基本结构
GPIO是General Purpose Input/Output的缩写意为通用输入/输出是一种用于嵌入式系统中的输入输出接口。GPIO通常由一组输入/输出引脚组成可以用来读取传感器数据、控制电机等外部设备。GPIO的基本结构可以分为以下几个部分 输入/输出引脚GPIO通常包含多个输入/输出引脚引脚数量和类型取决于具体的芯片型号和应用需求。 数据方向控制器GPIO可以通过数据方向控制器来控制输入和输出方向。当GPIO被配置为输入时数据方向控制器将向外部设备输出一定的信号来指示其为输入模式。当GPIO被配置为输出时数据方向控制器将向外部设备输出一定的信号来指示其为输出模式。 状态寄存器GPIO可以通过状态寄存器来记录GPIO的当前状态例如输入或输出状态、电平状态等。 中断控制器GPIO可以通过中断控制器来实现中断功能。当GPIO状态发生变化时中断控制器会产生一个中断信号从而使系统执行相应的中断处理程序。 编程接口GPIO可以通过一种编程接口来进行配置和控制通常使用各种编程语言来实现例如C语言、Python等。
总的来说GPIO是一种非常灵活的输入输出接口可以广泛地应用于各种嵌入式系统中。下面是对于的结构图 GPIO 功能模式
STM32F103系列的I/O引脚共有8种工作模式其中输出模式有四种推挽输出、开漏输出、复用推挽输出、复用开漏输出输入模式有四种上拉输入、下拉输入、浮空输入、模拟输入。 推挽输出模式的引脚输出高低电平时直接输出高电平或低电平适合连接到外部电路或器件的输入端。开漏输出模式的引脚输出高电平时不输出电压在输出低电平时将端口与地相连适合连接到晶体管、继电器等需要开关控制的器件。复用推挽输出模式和复用开漏输出模式都是在要使用定时器、USART等外设时选择的模式。复用推挽输出模式和推挽输出模式类似输出高低电平时直接输出高电平或低电平而复用开漏输出模式和开漏输出模式类似输出高电平时不输出电压在输出低电平时将端口与地相连。上拉输入模式和下拉输入模式都是用来连接开关等输入设备的其中上拉输入模式在输入端口与VCC之间连接一个电阻下拉输入模式在输入端口与地之间连接一个电阻。浮空输入模式和模拟输入模式都是用来连接传感器等模拟信号源的浮空输入模式下引脚不与任何电路相连使用前需要外部加电源或信号源模拟输入模式下引脚内部连接一个数据采集电路可以直接将外部模拟信号转换为数字信号。 ⭐️硬件及原理图
我们可以对照开发板原理图找到对应的引脚。 我们可以看到控制LED的接口是PB9,我们接下来开始写代码。
⭐️代码实现
LED.C
#include include.hvoid LED_Init(void)
{RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode GPIO_Mode_Out_PP; //推挽输出GPIO_InitStructure.GPIO_Pin GPIO_Pin_9; //LED0--PC.2 端口配置GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz;GPIO_Init(GPIOB, GPIO_InitStructure);
}LED.H
#ifndef __LED_H
#define __LED_Hvoid LED_Init(void);#endifMAIN.C
#include include.hint main(void)
{LED_Init();//初始化 while (1){GPIO_ResetBits(GPIOB, GPIO_Pin_9);//点亮Delay_ms(3000);GPIO_SetBits(GPIOB, GPIO_Pin_9);//熄灭Delay_ms(1000);}
}
⭐️总结
我们学习了STM32怎么通过控制GPIO完成点亮LED灯我们文末代码实现的是闪烁通过原理图找到对应的GPIO口来实现LED灯闪烁。
下节预告
我们今天介绍了实现LED灯闪烁的功能。下一篇会介绍实现stm32通过GPIO控制蜂鸣器响。