stm32定时器输出PWM波仿真频率不正确

QUESTION1.用stm32写了个简单的pwm波输出程序,仿真发现输出的频率为设置的一半,查看了设置的值没问题

TIM2_PWM_Init(7199,0);

频率=72000000/((psc+1)*(arr+1))
结果波形为:
在这里插入图片描述
周期为0.2ms,即频率为5000Hz,差了一半

**解决方法:**后面无意间去翻SystemInit();文件,发现我用的之前别人的工程模板,里面的默认频率设置为36MHz
在这里插入图片描述
注释掉36MHz那一行,把72MHz那一行取消注释,再输出波形正常了,周期为10ms,即频率10KHZ
在这里插入图片描述
结果:
在这里插入图片描述

QUESTION2:设定的定时器3输出50HZ方波,但是用keil仿真出的方波频率是74HZ左右的;

Motor_PWM_Init(19999,71);   //初始化定时器输出方波频率50HZ
while(1)
	{
		TIM_SetCompare1(TIM3,3000);  //输出通道1波形
		TIM_SetCompare2(TIM3,3000);
		TIM_SetCompare3(TIM3,3000);
		TIM_SetCompare4(TIM3,3000);		
	}

仿真图形如下,频率为74HZ左右:
在这里插入图片描述
查看SystemInit()里面的配置也是正确的;
解决方法:查看MDK软件里面的外部晶振频率设置是否正确?
在这里插入图片描述
看了看我的stm32外部晶振是8MHz的,将其改为8MHz再次仿真:
结果正确:
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RambOoO_l

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值