使用python写一个stm32的定时器计算器

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

我们在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("输入错误")


  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值