stm32 cubemx 配置普通定时器功能

       在之前的32单片的项目开发中,对于程序模块的使用和配置,主要借助于各个开发套件的demo,在此基础上进行相关的修改,往往对于较为复杂的设计,可能设计较为详细的寄存器设置,容易出错,而且移植也相对较为麻烦。cubemx以一种可视化的模块配置,配置简单,一目了然,给人很清新的感觉,极大的方便开发人员的工作。以下是我在初次使用该软件对定时器的配置思路,希望能对学习着起到一定的参考作用。 这里我们设计定时器为1ms的例子,只做重点部分的讲解。下图为定时器的工作框图,包含了定时器所涉及到的各个寄存器和功能说明,由图可以知基本定时器主要下面三个寄存器构成。

  1. 预分频器寄存器(TIMx_PSC)
  2. 自动重载寄存器(TIMx_ARR)
  3. 计数器寄存器(TIMx_CNT)

预分频器 (TIMx_PSC)为多少个SK_PSC脉冲计数一次,计数器寄存器 (TIMx_CNT)存储的是当前的计数值。如预分频器的值为1(预分频寄存器默认为0,为不分频),则为两个脉冲计数一次。即为二分频。如果要10000分频,则预分频器的值为1000-1。

                                                        基本定时器的基本框图            

 

1,选择并打开定时器:

       通过掌握了定时器的工作原理之后, 对接下来的该做什么就有了较为清晰的认识了。如图所示,由于只作为普通定时器的使用,所以对于其他定时器的功能可以不做设置,具体使用需根据芯片用户手册做相关操作,比如相对复杂的主从模式设置,触发源选择,输入捕捉和输出比较等等,通过该图可一目了然,思路清晰,非常方便。

2,配置定时器时钟:

 

 

 3.配置定时器:

       这里配置的是定时器产生中断的频率,然后再跟据频率与时间的关系推出定时的时间。Prescaler定时器预分频的设置,时钟源经过该分频器才是定时器时钟,它设定TIMx_PSC寄存器的值,该寄存器的可设定范围是1~65535,实现1至65535分频,例如设置71,得到的分频时钟频率就是1MHz。CouterMode计数方向寄存器在基本定时器的应用中只有向上计数,TIMx_CNT只能从0开始递增,无需初始化。Period周期寄存器可设置值为0~65535。Period设置为1000-1。定时器产生中断频率为:1MHz/1000=1KHz。所以定时器频率为 f = 72M / Prescaler / Period = 72000 000 / 72 /1000 = 1000Hz。定时时间T = 1 / f 则: 1s / 1000Hz = 1000 000us / 1000Hz = 1000us =1ms。索性把定时器中断时间的公式也给大家回顾下:

定时器中断时间:(TIM_Prescaler+1)*(TIM_Period+1)/fclk(总线频率)

4.生成代码:

 点击生成工程文件,选择适合路径,keil版本和库,完成最后一步。

          最后在说一句,在调试程序的时候,需要注意自己的调试工具,是SWD还是jlink,CubeMX默认是stlink的调试模式,若换成jlink时,需要使能该模式,同时禁止swd。下图中是生成完代码之后,我做的改动,根据自己的需求合理使用这两句代码。

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32CubeMX配置高级定时器,您可以按照以下步骤进行操作: 1. 打开STM32CubeMX软件,并选择您的目标STM32微控制器型号。 2. 在"Pinout & Configuration"选项卡中,选择"Timers"选项。 3. 在"Timers"选项中,找到您想要配置的高级定时器,例如TIM1或TIM8。 4. 单击所选定时器旁边的复选框,以启用该定时器。 5. 根据您的需求,配置定时器的不同参数,例如时钟源、预分频器、计数模式等。您可以参考STM32的参考手册或数据手册来了解每个参数的具体含义和配置方式。 6. 在配置完成后,单击"OK"按钮以应用配置。 7. 在"Project"选项卡中,选择您的开发板或目标硬件。 8. 根据您的需求,配置其他外设和功能。 9. 单击"Project"选项卡上方的"Generate Code"按钮,生成代码并导出到您的开发环境中。 通过按照以上步骤进行配置,您可以在STM32CubeMX中成功配置高级定时器。请注意,具体的配置步骤可能会因不同的STM32微控制器型号而有所差异,因此请参考您所使用的微控制器的参考手册或数据手册以获取更详细的配置信息。\[2\]\[3\] #### 引用[.reference_title] - *1* [STM32CubeMx配置定时器](https://blog.csdn.net/qq_31073871/article/details/121657095)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [STM32CubeMX学习笔记九《定时器配置》](https://blog.csdn.net/weixin_43123205/article/details/109958592)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值