提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
我们在stm32使用定时器要计算定时器频率、占空比和分辩率的值和计算定时器的频率、占空比和分辩率所需要的ARR, CCR ,PSC的值,使用我使用python写了一个stm32计算器
一、
可以自己修改一下这只是一个简单的代码
二、代码
代码如下(示例):
#计算定时器频率、占空比和分辩率的值PWM频率:Freq,PWM占空比:Duty,PWM分辨率:Reso
def fun1():
CK_PSC = 72000000
ARR, CCR ,PSC= eval(input("请输入ARR、CCR和PSC的值[用英文逗号隔开]:"))
Freq = float(CK_PSC/(PSC + 1)/(ARR + 1))
Duty = float(CCR/(ARR + 1))
Reso = float(1/(ARR + 1))
print("PWM频率:Freq = {}".format(Freq))
print("PWM占空比:Duty = {}".format(Duty))
print("PWM分辨率:Peso = {}".format(Reso))
#计算定时器的频率、占空比和分辩率所需要的ARR, CCR ,PSC的值
def fun2():
CK_PSC = 72000000
Freq,Duty,Reso = eval(input("请输入Freq(频率),Duty(周期),Reso(分辩率)的值[用英文逗号隔开]:"))
ARR = int(1/Reso - 1)
CCR = int(Duty*(ARR + 1))
PSC = int(((CK_PSC*(ARR + 1)/Freq) - 1)/10000)
print("ARR = {}".format(ARR))
print("CCR = {}".format(CCR))
print("PSC = {}".format(PSC))
flag = eval(input("\n模式1为计算定时器频率(Freq)、占空比(Duty)和分辩率(Reso)的值\n模式2为计算定时器的频率、占空比和分辩率所需要的ARR(周期), CCR ,PSC(预分频器)的值\n请选择您需要的模式(1or2):"))
if(flag == 1):
fun1()
elif(flag == 2):
fun2()
else:
print("输入错误")