使用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的渐亮渐灭效果。
热门推荐
《红楼梦》中的北方俚语:生活气息与文化内涵的完美融合
《红楼梦》中的俗语智慧:从语言艺术到人生哲理
《红楼梦》俗语里的清代生活百态
被欠薪了怎么办?教你算清赔偿金!
工资被拖欠怎么办?《劳动合同法》新规为你撑腰
职场人必看:最新经济补偿金计算方法全解析
刘守英解读:土地如何推动区域经济发展?
欧洲、北美、亚洲土地所有权大比拼:从历史演变到现代改革
陈坤祥博士:民宿新纪元,AI技术带来无限可能
马六甲必打卡:荷兰红屋深度游攻略
马六甲荷兰红屋:375年历史见证者的前世今生
探秘马六甲荷兰红屋:殖民遗迹中的文化交汇点
正五边形:数字“五”的几何魔法
音乐模式:从古希腊到现代音乐的音阶奥秘
音乐疗法:一种身心康复的音乐治疗方式
开学了,为什么要筛查肺结核?
肺结核传染吗?怎么预防呢
从战略到行动,结核病该如何防治?
如何正确服用二甲双胍?医生教你4招稳住血糖!
二甲双胍:从降糖药到“神药”的蜕变
原研盐酸二甲双胍缓释小圆片获批上市,体积缩小30%更易吞咽
陈宝瑾医生:用“病去如抽丝”理念点亮援疆康复之路
于湉新曲《hello》:用歌声传递温暖,给疲惫心灵充电
从“Hello World”到数字游民:一位程序员的职业转型之路
外贸人必学:40种优雅英语问候语
掌握100+种英语问候语,让你成为社交达人!
从“Hello”到Hello Girl:英语文化的变迁
异种器官移植离长存活率还远吗?
肾移植手术后注意事项
器官移植知“多少”