使用STM32和HAL库实现呼吸灯效果
创作时间:
作者:
@小白创作中心
使用STM32和HAL库实现呼吸灯效果
引用
1
来源
1.
https://www.cnblogs.com/hack747/p/18508491
本文将介绍如何使用STM32F103C8微控制器和HAL库实现呼吸灯效果。通过配置通用定时器生成PWM信号,可以控制LED的亮度变化,实现渐亮渐灭的效果。
硬件环境
- 开发板:STM32F103C8
- 仿真软件:Proteus 8
- 开发平台:STM32CubeMX + Keil
1. 新建STM32CubeMX工程
1.1 配置系统时钟RCC
1.2 配置定时器
这里使用PB3和PA15一对引脚。在TIM2定时器中,选择内部时钟作为时钟源,并配置通道1和通道2为PWM输出模式。
2. 代码实现
2.1 定义变量
uint16_t pulse=0; /*占空比,重装载值设置为999*/
uint8_t flag=1; /*LED标志位,用于判断是渐亮还是渐灭*/
2.2 主函数
int main(void)
{
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_TIM2_Init();
/* USER CODE BEGIN 2 */
//启动定时器2通道1的PWM
HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_1);
//启动定时器2通道2的PWM
HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_2);
uint16_t pulse=0; /*占空比,重装载值设置为999*/
uint8_t flag=1; /*LED标志位,用于判断是渐亮还是渐灭*/
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
if (flag==1) /*执行LED渐亮*/
{
if (pulse<1000)
{
pulse+=50; /*占空比增大*/
__HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_1,pulse); /*修改占空比*/
HAL_Delay(100);
}
else
flag=0; /*切换为渐灭模式*/
}
else /*执行LED渐灭*/
{
pulse-=50; /*占空比减小*/
__HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_1,pulse); /*修改占空比*/
HAL_Delay(100);
if (pulse==0)
{
flag=1; /*切换为渐亮模式*/
}
}
}
}
通过上述配置和代码实现,可以成功实现LED的呼吸灯效果。这个项目展示了如何使用STM32的通用定时器生成PWM信号,并通过软件控制实现LED的渐亮渐灭效果。
热门推荐
汽油粮食都买不起!斯里兰卡国家破产意味着什么?
我的世界生存小屋隐蔽密室建造指南:安全与创意的完美结合
符合这些条件可以申请增驾!
劳动力成为商品必须具备哪些现实条件
K线图的12种基本形态:识别与应用指南
打造漂亮芦荟,这些养护技巧不容错过!(芦荟怎么养好看?跟着这15个步骤搞定!)
了解消费者行为和购买心理的重要性
汽车亏电怎么办?一篇文章教你充电与预防措施
烫伤的分级与治疗:从急救到专业医疗的全面指南
内分泌失调会导致头部脱发吗
请假领导不回复消息怎么办
夫妻间沟通技巧的提升
滑膜皱襞术后康复注意事项有哪些
又快又省的短途游,年轻人爱了
安全模式的功能与意义是什么?
高压132低压92,血压正常吗?我来告诉你
排版设计如何营造时间感:通过时间轴与历史顺序呈现信息的疑问探讨?
使用卫星仿真软件STK进行星地链路和星间链路建模与数据提取
AI革新电影创作:从剧本生成到市场营销的新风貌
奢侈品如何做客户crm管理
长者食慾不振怎麼辦?營養補充的有效策略
Excel中快速生成星期几的三种方法
提升军人社会福利的必要性与措施探讨
史书对董卓真实实力的记载与评价
如何操作显示切换回稳定版
木薯怎么处理后无毒
对等翻译理论的实践应用与未来展望
请求权基础法律案例教学的理解与实践指引
安东尼·沃克:NBA传奇球星的辉煌职业生涯
Word中段落缩进和间距的调整方法详解