永州祁阳网站建设,wordpress多主题投票,网站降权处理,个体工商户网站备案流程文章目录 前言一、STM32点亮LED灯的原理1.1GPIO是什么1.2点亮LED灯的原理 二、STM32Cubemx创建工程三、proteus仿真电路图四、程序代码编写1.LED灯操作函数介绍HAL_GPIO_WritePin函数原型参数说明示例代码 HAL_GPIO_TogglePin函数原型参数说明示例代码 2.代码编写3.烧写程序 总… 文章目录 前言一、STM32点亮LED灯的原理1.1GPIO是什么1.2点亮LED灯的原理 二、STM32Cubemx创建工程三、proteus仿真电路图四、程序代码编写1.LED灯操作函数介绍HAL_GPIO_WritePin函数原型参数说明示例代码 HAL_GPIO_TogglePin函数原型参数说明示例代码 2.代码编写3.烧写程序 总结 前言
本篇文章开始带大家学习如何使用proteus和STM32Cubemx来完成STM32的学习第一节课我们先来学习点亮LED灯。
proteus使用8.9版本。
STM32Cubemx使用6.3版本。
一、STM32点亮LED灯的原理
1.1GPIO是什么
GPIOGeneral-Purpose Input/Output即通用输入输出是微控制器上的一种通用引脚。GPIO引脚可以配置为输入或输出模式用来读取外部信号如按钮按下的状态或控制外部设备如点亮LED灯。GPIO是微控制器与外部世界交互的重要接口广泛应用于嵌入式系统中。
GPIO的基本功能 输入模式引脚可以读取外部设备的状态例如开关、按钮等。 输出模式引脚可以输出高电平或低电平信号用来控制外部设备例如LED灯、继电器等。 中断功能某些GPIO引脚可以配置为中断模式当引脚状态发生变化时触发中断。 复用功能有些GPIO引脚可以复用为其他外设功能例如UART、SPI、I2C等。
1.2点亮LED灯的原理
1.配置GPIO引脚 首先需要将微控制器的某个GPIO引脚配置为输出模式。以STM32为例通常需要以下步骤
使能GPIO时钟在配置GPIO之前需要使能对应的GPIO端口时钟。例如使用GPIOA端口时需要使能GPIOA的时钟。 配置引脚模式将对应引脚配置为输出模式。 配置引脚类型和速度可以选择推挽输出或开漏输出并设置输出速度低速、中速、高速。
2.控制GPIO引脚输出 配置好GPIO引脚后可以通过控制引脚的电平来点亮或熄灭LED灯。LED灯通常连接在GPIO引脚与地之间阳极接GPIO引脚阴极接地或者GPIO引脚与Vcc之间阴极接GPIO引脚阳极接Vcc。
点亮LED将GPIO引脚输出低电平0V电流从Vcc流经LED到地LED点亮。 熄灭LED将GPIO引脚输出高电平3.3V或5VLED两端电压相同无电流流过LED熄灭。
3.完整流程 使能时钟启用GPIO端口的时钟。 初始化引脚配置GPIO引脚为输出模式。 控制电平通过设置引脚的高低电平来控制LED灯的点亮与熄灭。
二、STM32Cubemx创建工程
1.选择芯片型号 2.配置Debug 3.配置时钟 4.设置时钟树
输入72双击回车即可。
5.工程配置 6.选择一个引脚作为输出引脚用于点亮LED灯
三、proteus仿真电路图
1.创建工程 2.添加对应的元器件 3.元器件放置
这里还需要注意电阻值的大小电阻假如太大的可能会导致LED灯无法被点亮。 4.STM32时钟主频设置
这里设置成72MHZ和STM32Cubemx中设置的保持一致 5.提供配电网
四、程序代码编写
1.LED灯操作函数介绍
在STM32 HAL库中HAL_GPIO_WritePin和HAL_GPIO_TogglePin是两个常用的GPIO控制函数。下面详细讲解它们的功能和使用方法。
HAL_GPIO_WritePin
HAL_GPIO_WritePin函数用于设置指定GPIO引脚的电平状态。这个函数可以将GPIO引脚设置为高电平或低电平以控制连接到该引脚的外部设备如LED灯。
函数原型
void HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState);参数说明
GPIOx: 指定GPIO端口基地址具体可以是GPIOA, GPIOB, GPIOC等。GPIO_Pin: 指定GPIO引脚使用宏定义如GPIO_PIN_0, GPIO_PIN_1等。可以通过按位或运算指定多个引脚例如GPIO_PIN_0 | GPIO_PIN_1。PinState: 指定引脚状态可以是以下值之一 GPIO_PIN_RESET低电平GPIO_PIN_SET高电平
示例代码
// 将GPIOA的第5个引脚设置为低电平
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET);// 将GPIOA的第5个引脚设置为高电平
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET);HAL_GPIO_TogglePin
HAL_GPIO_TogglePin函数用于切换指定GPIO引脚的电平状态。如果引脚当前是高电平则切换为低电平如果引脚当前是低电平则切换为高电平。这个函数常用于控制需要反复切换状态的设备例如闪烁的LED灯。
函数原型
void HAL_GPIO_TogglePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);参数说明
GPIOx: 指定GPIO端口基地址具体可以是GPIOA, GPIOB, GPIOC等。GPIO_Pin: 指定GPIO引脚使用宏定义如GPIO_PIN_0, GPIO_PIN_1等。可以通过按位或运算指定多个引脚例如GPIO_PIN_0 | GPIO_PIN_1。
示例代码
// 切换GPIOA的第5个引脚的电平状态
HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5);2.代码编写 3.烧写程序
将对应的hex文件选择进去。 运行程序 LED灯被点亮 总结
本篇文章就讲解到这里大家有什么疑问都可以留言。
本篇文章代码和工程将放在微信公众号中。
回复 STM32仿真LED即可领取源码和工程。