STM32基于HAL库流水灯实验

一、搭建STM32的开发环境
安装JDK
在这里插入图片描述
以管理员身份运行并安装 SetupSTM32CubeMX-4.27.0.exe ,进入下面这个界面后

在这里插入图片描述
点击help 安装相应的库文件

二、HEL库GPIO端口3只LED红绿灯的周期闪烁
(一)CubeMX建项目
1.新建File->Project
在这里插入图片描述
2.选择芯片STM32F103C8

在这里插入图片描述
3.SYS选择
在这里插入图片描述
4.RCC选择
在这里插入图片描述
5.选择端口输出设置,选择需要的端口,点击设置GPIO_OUTPUT,我选择的是PA4,PB9,P

STM32 HAL库(Hardware Abstraction Layer)是一个针对STM32微控制器系列提供的软件抽象层,它封装了底层硬件资源,如GPIO、定时器等,简化了用户对硬件的访问和操作。在使用stm32HAL库制作流水灯时,通常会涉及以下几个步骤: 1. 初始化GPIO:选择一个或多个GPIO端口作为LED灯的数据线,设置它们的工作模式为推挽输出。 ```c GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.Pin = LED_PIN; // LED灯对应的GPIO引脚 GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP; // 推挽输出 GPIO_InitStructure.Pull = GPIO_NOPULL; // 不上拉/下拉电阻 HAL_GPIO_Init(GPIOA, &GPIO_InitStructure); ``` 2. 初始化定时器:使用定时器控制灯的闪烁速度,例如使用PWM功能。 ```c TIM_HandleTypeDef htim; TIM_TimeBaseInitTypeDef.TIM_Prescaler = ...; // 计算出合适的预分频值 TIM_TimeBaseInitTypeDef.TIM_Period = ...; // 设置周期时间 HAL_TIM_Base_Init(&htim); HAL_TIM_MspPostInit(&htim); // 配置定时器的中断和电源 ``` 3. 设置定时器的PWM通道和占空比:这将决定LED灯的亮度。 ```c HAL_TIM_PWM_Start(&htim, PWM_CHANNEL); // 启动PWM通道 HAL_TIM_PWM_ConfigChannel(&htim, &htim_PWMChannel, PWM_MODE); // 配置PWM模式 HAL_TIM_SetPulseWidthTimer(&htim, PWM_WIDTH); // 设置每个周期内的高电平时间 ``` 4. 主循环里更新PWM:改变定时器的占空比,实现灯的闪烁。 ```c while (1) { if (condition) { // 条件变化时改变占空比 HAL_TIM_SET_COMPARE(&htim, PWM_CHANNEL, new_pwm_width); } HAL_Delay(DELAY_MS); // 等待一段时间再调整 } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值