使用Stm32CubeMX配合Stm32F334nucleo板-TIM定时器模块输出PWM波

1.先说一下我们这次实验目的:用通用定时器生成一个1Hz占空比50%的PWM波

2.我这里就不讲理论了,小白一个,理论我自己都不是很清楚,直接实践,我们查Stm32F334的DataSheet,可以看到PA0~PA3可以做为定时器TIM2的四个输出引脚,那这里我们就随便选一个TIM2_CH1好了,后面大家实验成功了可以尝试其他输出口实验

3.还是新建Stm32CubeMX工程选择Stm32F334nucleo,然后按下图先配置时钟,因为涉及到PWM波的频率,需要配置好时钟了,之前GPIO用默认时钟没有关系,PWM波需要自己清楚自己设计的频率是多少,这里把它设置成外部时钟,8MHz,经过分频倍频最后得到APB2的频率72MHz,也就是我们TIM2的时钟频率是72MHz,我就改了红色框里面的/1  8  X9,其他都是自动生成的

3.TIM2_CH1是PA0引脚上的,所以我们设定PA0为TIM2_CH1,打开Timers,设置Channel1为PWM Generation CH1

4.按下图设置,这三个参数是关于PWM波的频率,占空比,分辨率的设定,关系如下:

PWM频率:Freq = 72M/(Prescaler+1)/(Period+1)
PWM占空比:Duty = Pulse/(Period+1)
PWM分辨率:Reso = 1/(Period+1)

分辨率可以暂时不管,频率和占空比一定要设定对,具体为什么这样设定,可以自己看视频学,我也是一知半解,就不误人子弟了。

按公式算,我们Freq = 1Hz,为了好计算,Prescaler就设定成了7200-1,72M=72 000 000,72000000/7200 = 10000,Period设定成10000-1就好了,这样频率就是1Hz了,要50%duty,Pulse就要设定成5000,50% = 5000/10000

5.还是和上一篇一样,设置工程,建立代码,打开工程

6.打开keil工程后添加如图语句

  HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_1);//开始发出PWM波,编译,下载,按reset按钮

7.电路图上找到PA0引脚,用示波器勾出来波形,或者用杜邦线把PA0和PA5接到一起,就可以观察到LED2在闪烁了,说明PWM输出成功

发现写了第一篇博客之后会有点上头,时不时想看看自己的浏览量和粉丝关注数,虽然这些没啥实际收益,不过自己内心还是很满足的,不知道那些浏览量和粉丝是不是机器人,大家看完觉得有用的话发个评论啥的呗,看到这份文章有帮助到其他小白,我也会很开心的。

  • 13
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值