【Nucleo-F303RE开发】也来个呼吸灯程序
本帖最后由 lkl0305 于 2015-6-20 11:46 编辑收到Nucleo-F303RE,学习CUBE库。
定时器中呼吸灯应该是比较经典的程序了。下面给大家分享一下。
我想使用定时器输出PWM控制板子上的LED实现,查了一下资料,发现正好TIM2的Ch1通道是链接到了Pa5,刚刚好。
于是在Cube中建立工程,进行TIM2配置,
(1)如图,选择Tim2:
(2)接下来参数设置,设置100us定时器基础时间,Ch1位PWM输出。
(3)设置开起定时器中断:
(4)设置PA5输出,TIM2——CH1通道
(5)在主程序中可以看到自动生成的TIM2的配置函数:
(6)中断程序中可以看到,定时器中断时自动调用HAL_TIM_IRQHandler(&htim2);
(7)为了记录定时器时基中断,定义变量TIM2_PeriodElapsed来表示状态,0没有中断,1中断。
定义TIM2_Channl1_Pulse存储通道1的比较值。
(8)在定时器中断的回调函数中置TIM2_PeriodElapsed为1
(9)下面主函数中添加自己的代码:
启动定时器通道1的PWM方式:HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_1);
以中断方式启动基础定时器: HAL_TIM_Base_Start_IT(&htim2);
下面循环中修改TIM2的比较寄存器的值来调整PWM输出脉冲宽度:TIM2->CCR1 = TIM2_Channl1_Pulse;这个在库中找不到对应的函数,不知道大家是怎么处理的?希望大家来交流一下!!!
最后编译下载就可以看到预期的效果,LED灯逐渐亮起来,然后循环。演示效果就不上了:lol大家自行下载演示
下面上程序:
===============================================================
上个演示吧!刚学会的
本帖最后由 Paderboy 于 2015-6-15 00:19 编辑
多谢分享。。支持
TIM2->CCR1 = TIM2_Channl1_Pulse;
在HAL库里用:
__HAL_TIM_SetCompare(&htim2, TIM_CHANNEL_1, TIM2_Channl1_Pulse);
多谢分享。 不错,cube呼吸灯 cube呼吸灯,多谢分享。 什么是呼吸灯
莫林2020 发表于 2015-6-15 08:51
什么是呼吸灯
http://www.baike.com/wiki/%E5%91%BC%E5%90%B8%E7%81%AF 不错,谢谢分享 Paderboy 发表于 2015-6-15 00:10
多谢分享。。支持
TIM2->CCR1 = TIM2_Channl1_Pulse;
在HAL库里用:
多谢指导交流:D slotg 发表于 2015-6-15 08:59
http://www.baike.com/wiki/%E5%91%BC%E5%90%B8%E7%81%AF
非常准确:D
页:
[1]
2