使用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的渐亮渐灭效果。
热门推荐
净水设备的滤芯和耗材多久需要更换一次?
里加,波罗地海跳动的心脏(上)
欧洲新市场:探索波罗的海三国的商机
广东罗定五大网红景点:从风车山到长岗坡渡槽,领略岭南独特风光
千树万树梨花开:解读"梨花"的多重文化象征
郭晶晶:豪门中的清流,用真实赢得尊重
三分钟出锅的季节性时令菜,五块钱一小把,用来炒鸡蛋最好吃!
怀孕后可以喝的豆浆有哪些
保温杯材质哪种好 保温杯第一次用怎么清洗
苏57战机击毁,F-16战机首战坠毁,击落4架俄军空中目标
痣会消失吗?深入解析痣的形成、消失及护理方式
贷款利率计算方法及高利率投诉指南
文景时期的商业经济发展的怎么样?
如何与总包介绍项目沟通
数据恢复工具恢复的照片打不开?原因解析及解决方案
魂师对决:五大强攻系SP魂师盘点及阵容解析!两强相争谁才是首席?
项目管理过程怎么跟进
工程进度跟进的目的:确保项目按计划推进,提高工作效率
纸黄金投资:深入剖析与风险管理策略
如何设置纸黄金的止损委托?这些止损策略对投资者有何帮助?
苏格拉底灵魂三问
张雪峰谈国际事务与国际关系专业就业前景、考研方向、优势与劣势
群晖NAS硬盘数据迁移详细实操指南
三命通会中的八字分析与预测
软件查西数硬盘生产日期
推动长期资金入市 解决资本市场配置资金不足顽疾
科普|珍珠的药用
社会阶层与家庭关系的深度剖析:电影《寄生虫》的社会评论
美联储是什么?美国联邦储备系统详解
草船借箭:智勇双全的战术对抗曹操