请选择 进入手机版 | 继续访问电脑版

你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【Nucleo-F303RE开发】也来个呼吸灯程序

[复制链接]
lkl0305 提问时间:2015-6-14 22:39 /
本帖最后由 lkl0305 于 2015-6-20 11:46 编辑

收到Nucleo-F303RE,学习CUBE库。
定时器中呼吸灯应该是比较经典的程序了。下面给大家分享一下。
我想使用定时器输出PWM控制板子上的LED实现,查了一下资料,发现正好TIM2的Ch1通道是链接到了Pa5,刚刚好。
于是在Cube中建立工程,进行TIM2配置,
(1)如图,选择Tim2:
701.jpg
(2)接下来参数设置,设置100us定时器基础时间,Ch1位PWM输出。
702.jpg
(3)设置开起定时器中断:
704.jpg
(4)设置PA5输出,TIM2——CH1通道
703.jpg
(5)在主程序中可以看到自动生成的TIM2的配置函数:
705.jpg
(6)中断程序中可以看到,定时器中断时自动调用HAL_TIM_IRQHandler(&htim2);
706.jpg
(7)为了记录定时器时基中断,定义变量TIM2_PeriodElapsed来表示状态,0没有中断,1中断。
定义TIM2_Channl1_Pulse存储通道1的比较值。
709.jpg
(8)在定时器中断的回调函数中置TIM2_PeriodElapsed为1
707.jpg
(9)下面主函数中添加自己的代码:
启动定时器通道1的PWM方式:  HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_1);
  以中断方式启动基础定时器: HAL_TIM_Base_Start_IT(&htim2);
下面循环中修改TIM2的比较寄存器的值来调整PWM输出脉冲宽度:TIM2->CCR1 = TIM2_Channl1_Pulse;这个在库中找不到对应的函数,不知道大家是怎么处理的?希望大家来交流一下!!!
708.jpg

最后编译下载就可以看到预期的效果,LED灯逐渐亮起来,然后循环。演示效果就不上了大家自行下载演示
下面上程序:
LED_PWM.rar (6.95 MB, 下载次数: 128)
收藏 3 评论11 发布时间:2015-6-14 22:39

举报

11个回答
Paderboy 回答时间:2015-6-15 00:10:07
本帖最后由 Paderboy 于 2015-6-15 00:19 编辑

多谢分享。。支持
TIM2->CCR1 = TIM2_Channl1_Pulse;
在HAL库里用:
__HAL_TIM_SetCompare(&htim2, TIM_CHANNEL_1, TIM2_Channl1_Pulse);

mark0668 回答时间:2015-6-15 01:05:58
多谢分享。
为什么是EEFOCUS小白 回答时间:2015-6-15 08:20:15
不错,cube呼吸灯
黑溱郎 回答时间:2015-6-15 08:31:27
cube呼吸灯,多谢分享。
莫林2020 回答时间:2015-6-15 08:51:56
什么是呼吸灯

埃斯提爱慕 回答时间:2015-6-15 22:18:48
提示: 作者被禁止或删除 内容自动屏蔽
lkl0305 回答时间:2015-6-15 22:57:22
Paderboy 发表于 2015-6-15 00:10
多谢分享。。支持
TIM2->CCR1 = TIM2_Channl1_Pulse;
在HAL库里用:

多谢指导交流
lkl0305 回答时间:2015-6-15 22:58:44
slotg 发表于 2015-6-15 08:59
http://www.baike.com/wiki/%E5%91%BC%E5%90%B8%E7%81%AF

非常准确
Brady 回答时间:2015-6-16 14:41:54
多谢分享!  HAL 库在学习中
lkl0305 回答时间:2015-6-16 23:24:04
Brady 发表于 2015-6-16 14:41
多谢分享!  HAL 库在学习中

多谢支持,共同学习

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版