使用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的渐亮渐灭效果。
热门推荐
猫咪毛球症怎么办?快速解决+日常预防小妙招!
猫咪严重掉毛该怎么办?
为什么猫咪会吐毛球?5种减少猫咪吐毛球的预防方式
清朝皇帝顺序和各个皇帝的详细简介
颈痛颗粒使用全攻略:功效、用量、禁忌与注意事项
盐酸帕罗西汀片的心血管风险:临床研究与使用注意事项
如何正确应对帕罗西汀的副作用?
帕罗西汀会改变性格?医生教你如何应对药物副作用
丽江古城:邂逅人文与自然的双重盛宴
九华山门票降至140元!冬日游佛国胜境正当时
九华山秋冬旅游攻略:云海日出与红枫黄杏的完美邂逅
高热量食品的正确食用指南:从热量限制到健康饮食
高热量食物吃多了,小心三高找上门!
贺知章是哪个朝代的
“不知细叶谁裁出,二月春风似剪刀”贺知章《咏柳》意思及全诗赏析
HIV/艾滋病对全球的影响
新研究揭示HIV非进展者独特免疫机制
大理苍山徒步攻略:绝美玉带云游路
洱海最美摄影点位大揭秘!
帕罗西汀停药攻略:如何平稳过渡?
证明平行宇宙存在的几大证据,你知道哪些?会真有吗?
平行宇宙存在论:我们可能只是多个现实中的一部分?
东北48岁老阿姨的逆袭:从家庭到自我,一场无声的革命
唐代诗狂贺知章,回乡遗墨千载香
贺知章创作风格与人物介绍
听障儿童早期干预新进展:康复训练效果显著
耳鳴怎麼辦?耳鼻喉科醫師解析原因、治療、解決方法
阿诺德·施瓦辛格推荐:牛肉干的健康秘密
自制牛肉干:超简单家庭版教程!
秋冬水果遇上牛肉干:创意搭配让美味翻倍