STM32定时器计算时间小程序

from tkinter import *
from tkinter import messagebox
from tkinter import filedialog
from tkinter.font import BOLD
'''
    网上找的计算公式:
    Tout=(Period+1)*(Prescaler+1)/Tck  其中TCK为时钟频率,Prescaler为时钟预分频系数,Period为自动重装载值。
'''
win = Tk()
win.title('STM32定时器计算')
win.geometry('200x100-200-100')

lbl_Pre = Label(win, text='Prescaler:',width=10)
lbl_Pre.grid(column=0, row=0)
lbl_Prescaler = Entry(win, width=10)
lbl_Prescaler.grid(column=1, row=0)

lbl_load = Label(win, text='Period', width=10)
lbl_load.grid(column=0,row=1)
lbl_Period = Entry(win,width=10)
lbl_Period.grid(column=1,row=1)

lbl_Tclk = Label(win, text='Tclk:', width=10)
lbl_Tclk.grid(column=0,row=2)
lbl_TclkMhz = Entry(win,width=10)
lbl_TclkMhz.grid(column=1,row=2)
lbl_UnitMhz = Label(win,text='Mhz',width=5)
lbl_UnitMhz.grid(column=2,row=2)

def calculation():
    if((len(lbl_Prescaler.get()) == 0) | (len(lbl_Period.get()) == 0) | (len(lbl_TclkMhz.get()) == 0)):
        messagebox.showwarning('Message title','Prescaler/Period/Tclk不能为空')
        return
    prescaler = lbl_Prescaler.get() #htim2.Init.Prescaler
    period = lbl_Period.get()       #htim2.Init.Period
    TclkMhz = lbl_TclkMhz.get()     #APB1时钟
    print('prescaler:{} period:{} TclkMhz:{}'.format(prescaler,period,TclkMhz))
    Tout = (int(prescaler) + 1) * (int(period) + 1) / (int(TclkMhz))
    lbl_Tout.insert(0,Tout/1000)

btn_calculation = Button(win, text='计算', width=8, command=calculation, bg='#FF0000',font=BOLD)
btn_calculation.grid(column=0,row=3)
lbl_Tout = Entry(win,width=10)
lbl_Tout.grid(column=1,row=3)
lbl_UnitUs = Label(win,text='ms',width=5)
lbl_UnitUs.grid(column=2,row=3)

win.mainloop()

Note(相关参数使用STM32CubeMx配置):

       

 

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值