关于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条回答
djw200988
1楼-- · 2019-07-14 21:42
1800-1    吧
wq644921241
2楼-- · 2019-07-15 01:58
重新上个图片吧
leilijiao
3楼-- · 2019-07-15 03:58
wq644921241 发表于 2018-9-29 17:53
重新上个图片吧

你好,图片上面是个计算公式:Tpwm = TIM_CLOCK/(2*frq)
leilijiao
4楼-- · 2019-07-15 05:41
djw200988 发表于 2018-9-29 17:45
1800-1    吧

谢谢你的回复,可否帮我分析下1800-1的原因,谢谢
leilijiao
5楼-- · 2019-07-15 06:46
 精彩回答 2  元偷偷看……
djw200988
6楼-- · 2019-07-15 09:49
leilijiao 发表于 2018-9-29 18:19
谢谢你的回复,可否帮我分析下1800-1的原因,谢谢

0~1800-1,刚好1800个数,两倍就是3600

一周热门 更多>