历史上的今天
返回首页

历史上的今天

今天是:2025年08月21日(星期四)

正在发生

2019年08月21日 | STM32 PWM占空比的计算及输出比较时CCR不同

2019-08-21 来源:eefocus

下面的这个是stm32的定时器逻辑图,上来有助于理解:

 

TIM3的ARR寄存器和PSC寄存器,

确定PWM频率。
这里配置的这两个定时器确定了PWM的频率,我的理解是:PWM的周期(频率)就是ARR寄存器值与PSC寄存器值相乘得来,但不是简单意义上的相乘,例如要设置PWM的频率参考上次通用定时器中设置溢出时间的算法,例如输出100HZ频率的PWM,首先,确定TIMx的时钟,除非APB1的时钟分频数设置为1,否则通用定时器TIMx的时钟是APB1时钟的2倍,这时的TIMx时钟为72MHz,用这个TIMx时钟72MHz除以(PSC+1),得到定时器每隔多少秒涨一次,这里给PSC赋7199,计算得定时器每隔0.0001秒涨一次,即此时频率为10KHz,再把这个值乘以(ARR+1)得出PWM频率,假如ARR值为0,即0.0001*(0+1),则输出PWM频率为10KHz,再假如输出频率为100Hz的PWM,则将ARR寄存器设置为99即可。如果想调整PWM占空比精度,则只需降低PSC寄存器的值即可。


注:这里以3.5库函数与之对应

ARR的周期值对应   TIM_TimeBaseStructure.TIM_Period  的设置值

PSC的分频值对应   TIM_TimeBaseStructure.TIM_Prescaler 的设置值

所以,分频值算出的是多长时间涨一次,那么ARR的值算出的是一个周期是多少次即 PSC*(ARR+1),这其实算出的时间,即一个周期所需要的时间,PWM频率就是这个值的倒数。如:设定频率为2K,分频设为8999。则72000K/(8999+1)=8K,算出时间为0.000125S涨一次,2K对应的周期是0.0005S。所以ARR的值应设为0.0005/0.000125=4。当然这里只是预算的值,这个值不能太小,太小了,就识别不出来了。实际的测试也是发现,值不对,什么输出都没有的情况。这里要特别的注意。


总结一下:PWM频率=(72000K/(PSC+1))/ARR

TIMx_CCRx寄存器,

确定PWM的占空比。


TIMx_CCR1—TIMx_CCR4确定定时器的CH1—CH4四路PWM的占空比。直接给该寄存器赋0—65535值即可确定占空比。占空比计算方法:TIMx_CCRx的值除以ARR寄存器的值即为占空比,因为占空比在0—100%之间,所以一般TIMx_CCRx寄存器值不能超过ARR寄存器的值,否则可能会引起PWM的频率或占空比的准确性。


//占空比其实更简单,即占周期的个数

TIMx_CCRx的值即为捕获到的值

总结一下公式为:占空比值/100=设置值/ARR  设置值=(占空比值/100)*ARR

其中,设置值对应库   TIM_OCInitStructure.TIM_Pulse  的值


推荐阅读

史海拾趣

骏晔科技(DreamLNK)公司的发展小趣事

骏晔科技在无线通讯模块领域一直寻求创新。2019年,公司与硬之城达成战略合作,推出了高性能的FSK双向收发模块。这款模块采用了最新的FSK调制技术,极大地提高了数据传输的稳定性和效率。通过这一创新,骏晔科技在物联网设备通讯领域取得了显著的市场份额增长。

Bergquist Company公司的发展小趣事

为了进一步扩大市场份额,Bergquist Company开始积极拓展全球市场。公司先后在英国、德国、韩国等地设立了办事机构,并在30多个国家设立了销售代表处。这些举措不仅使公司的产品和服务覆盖了更广泛的地区,还为公司带来了更多的商业机会。同时,Bergquist Company还积极寻求与其他企业的合作,通过技术交流和资源共享,不断提升自身的竞争力。

Block USA Inc.公司的发展小趣事

在支付与金融服务领域取得成功后,Block USA Inc.还尝试了跨界合作,推出了音乐软件TIDAL。这一举措旨在通过提供高品质的音乐体验,吸引更多年轻用户群体,并进一步扩大Block的品牌影响力。虽然音乐市场竞争激烈,但TIDAL凭借其独特的音乐资源和用户体验,逐渐在市场中占据了一席之地。

Connor-Winfield公司的发展小趣事

随着全球经济的一体化,电子行业也逐渐呈现出全球化的趋势。Connor-Winfield敏锐地把握住了这一机遇,开始实施全球化战略。公司积极拓展海外市场,与多家国际知名企业建立了紧密的合作伙伴关系。这些合作不仅为公司带来了更多的商业机会,也使其在全球化竞争中保持了领先地位。

Defender Security公司的发展小趣事

物联网技术的快速发展为网络安全带来了新的挑战和机遇。Defender Security公司积极应对这一变化,加大了对物联网安全领域的投入。他们与多家物联网企业合作,共同研发了适用于物联网设备的安全防护方案。通过不断优化和升级产品,Defender Security成功帮助物联网企业解决了安全问题,同时也为自己带来了新的增长点。

德崧电子(D-SWITCH)公司的发展小趣事

在电子开关行业,防水性能一直是重要的技术指标。德崧电子(D-SWITCH)公司在成立初期就意识到了这一点,并投入大量资源进行研发。经过数年的努力,公司成功研发出了具有TUV IP67/IP68防水等级认证的防水型开关。这一突破性的技术不仅解决了市场上防水开关性能不稳定的问题,还大大提高了产品的可靠性和使用寿命。凭借这一技术优势,德崧电子在市场上迅速崭露头角,赢得了客户的广泛认可。

问答坊 | AI 解惑

请各位帮忙讲解一下这台静电消除机的原理

这台机器用于塑胶印刷机上作静电消除,台湾产的,控制板和可控硅坏了,IC和可控硅以及二极管都被打磨了。没弄过这个东东,搞不清它的原理,哪位熟悉的大侠帮忙讲解一下。 [ 本帖最后由 ediy007 于 2009-3-11 13:31 编辑 ]…

查看全部问答>

请教大侠怎么在linux下把s3c2440的串口波特率设置为250k???

芯片资料上说可以选择PCLK,UEXCLK,FCLK/n作为串口的时钟源,假如用PCL最高可以达到115.2k,假如要更高的波特率就要用外接时钟或者用FCLK/n作为串口的时钟源,但是这个怎么设置呢?我设置了ULCON,UCON,UFCON不行啊,解压linux之后就停在那里了,bo ...…

查看全部问答>

51单片机编程C语言资料

现在学习51单片机一段时间了,以前下了一个c编程的资料,放在手边查阅,感觉不错,给大家分享一下…

查看全部问答>

求ce 6.0的资料

RT:最近想学ce 6.0的相关东西,请问哪位前辈有ce6.0的开发资料。 包括定制系统,如何定制sdk,等等内容的,越全越好…

查看全部问答>

ifs 文件隐藏驱动如何入手?

ifs 文件隐藏驱动如何入手?请各位大侠出招.如有demo就那就更感谢!QQ:397216371…

查看全部问答>

WIFI如何发送数据包

WIFI设备与无线路由器连接上后,如何获取它的IP地址,WIFI发送数据包使用的通信协议是什么,发送数据包时需要调用哪些函数…

查看全部问答>

wince 如何捕获SD卡插拔

请问在wince 如何捕获SD卡插拔的消息事件,高手指点! 感激不尽! …

查看全部问答>

请教关于MSP430F2274串口通信问题

最近在用2274的板子做一个关于串口通信的实验,开发板上没有做RS232接口,自己从UART上用MAX232做了一个RS232串口,用串口调试程序进行调试,在PC机上串口调试程序中发送16进制的数,程序里有一个缓冲区进行接收,如果一次发一个字符例如: 7E ,这样 ...…

查看全部问答>