stm32f334更新PWM频率时出现一段约为5us的高电平

2019-07-14 15:03发布



利用STM32f334产生3路互补的PWM信号,频率为1MHz,现在需要切换到400kHz,但是在切换的过程中,出现一段约为5us的高电平,如图所示,请问如何消除。


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
林宇宣55
1楼-- · 2019-07-15 10:10
以TIMC为例子,控制寄存器TIMCCR=0X0904000A;主定时器MCR=0X2005000A;剩下的对照手册慢慢体会去吧,想弄懂HRTIME就别着急。反复看手册。
cmstock
2楼-- · 2019-07-15 14:48
林宇宣55 发表于 2018-12-21 13:09
以TIMC为例子,控制寄存器TIMCCR=0X0904000A;主定时器MCR=0X2005000A;剩下的对照手册慢慢体会去吧,想弄懂HRTIME就别着急。反复看手册。

能具体针对这个问题分析一下吗?
林宇宣55
3楼-- · 2019-07-15 16:05
 精彩回答 2  元偷偷看……
cmstock
4楼-- · 2019-07-15 19:42
林宇宣55 发表于 2018-12-21 13:45
这个问题就是在更改寄存器值的时候,没有完全同步更新。因为单片机是串行运行代码的,寄存器的值也是一个一个更新的。所以,在寄存器的值变化非常大的时候就会出现断续的问题。比如,你的频率从400k变到1M,那么周期寄存器,各个比较器都会有一个大幅度变化。比方说,TIMC的CLOCK为1.052Ghz,频率是25000,那么说周期寄存器 ...

谢谢这么详细的回答,有一点我还不明白,因为我使能了预装载功能,按理说应该是同时刻更新的呀。
林宇宣55
5楼-- · 2019-07-16 01:19
cmstock 发表于 2018-12-21 13:59
谢谢这么详细的回答,有一点我还不明白,因为我使能了预装载功能,按理说应该是同时刻更新的呀。

更新触发源没设置好。比如TIMC和TIMD的更新触发源都设置为主定时器更新(MSTU: Master Timer update)。然后主定时器的更新可以设置成软件更新(MSWU: Master Timer Software update)也可以设置成主定时器周期完成时更新(MREPU: Master Timer Repetition update)。我劝你多看看手册,不要着急。我当时也是整了10来天才搞明白的。
uvysdfydad
6楼-- · 2019-07-16 04:55
学习一下,收藏了!

一周热门 更多>