使用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的渐亮渐灭效果。
热门推荐
让材料自己“说话”——综合材料绘画的创新探索
改变字体颜色
现榨果蔬汁:营养与注意事项全解析
失业保险少缴一个月,损失谁来担?
玫瑰花泡水,喝对才养肝!3种黄金搭配,护肝一步到位
南皮碱麦粉:传承千年美食文化的金色纽带
银河系超大质量黑洞附近发现双星系统
如何准备事业单位工作人员年度考核材料?
离职补偿金是否算在工资总额?一文详解离职相关权益
泉州开元寺:千年古刹的建筑艺术与文化瑰宝
生瓜子的储存方法
贫血很常见,难发现,危害大?这份补铁指南你值得拥有
胆固醇高血脂高饮食要注意什么
小车自动挡的挂档方式有哪些?这些方式在不同路况下如何选择?
女朋友焦虑抑郁症怎么安慰
摩崖壮关陇,丹心曜春秋
晋城人力资源产业园怎么样
恶心的日语怎么说
为什么我们举办Rumble:揭秘年度拳头游戏内部对抗赛
如何从0到1开始并一步步巩固自己的AI职业生涯
丹参茶的副作用和禁忌
新疆区域历史的发展是中国统一多民族国家发展历程的缩影
流程图怎么画好看?六个实用技巧教你轻松搞定
《黑神话:悟空》引发链游(GameFi)发展反思
7月末我国货币乘数为8.32倍,今年2月以来连续6个月维持在8倍以上
货币乘数如何计算
信息物理系统CPS架构
微信设置进群需要验证
中外合办院校为何如此火爆?报考前家长必看的排名与优势
南京航空航天大学中外合作办学学费多少钱一年-各专业收费标准