关于stm32的tim1的计数模式

2019-07-14 17:16发布

我现在要用tiM1产生频率为20kHz的PWM,我选用TIM1的中央对齐模式:
    TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_CenterAlignedl;
为了提高定时器的分辨率,直接将72 MHz作为定时器的计数时钟,没有任何预分频。假设PWM频率为frq = 20k,则可以计算时间基的计数值tpwm:
   
    TIM_CLOCK是定时器的计数频率,本系统为72 MHz。频率设为20 kHz,则计数器的值则为3600。
问题:那请问我向TIM_TimeBaseStructure.TIM_Period(TIM1_ARR)中应该赋值为1800还是1800-1啊?为什么?求高手帮忙指导
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
leilijiao
1楼-- · 2019-07-16 03:11
TOPCB 发表于 2018-9-29 20:13
如果实在确定不了的,可以示波器测试一下波形。

我用示波器已经测试了,设的是1800-1,产生的PWM的周期适合的,但是理论上我不理解啊,为什么是这样?和我想的不一样
TOPCB
2楼-- · 2019-07-16 05:36
楼上几位也分析了。手册也说明是从0开始增加,加到1799,正好是1800。
leilijiao
3楼-- · 2019-07-16 06:18
 精彩回答 2  元偷偷看……
TOPCB
4楼-- · 2019-07-16 11:08
示波器应该可以测试出一点差别的。
zzw0719
5楼-- · 2019-07-16 14:28
10#说的很好啊
亲爱的娜娜
6楼-- · 2019-07-16 15:02
这个不可能装2个不同的值结果都对吧,有空我自己测试下

一周热门 更多>