打印
[应用相关]

关于F415定时器TMR2,CLKDIV配置无效的疑问

[复制链接]
575|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zpchan95|  楼主 | 2023-5-9 16:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天使用F415定时器TMR2,发现CLKDIV无论配置为多少,计数频率都不变。如下代码,不知是不是我理解错了CLKDIV的含义
void peripheral_time_base_init(void)
{
    tmr_32_bit_function_enable(TMR2, TRUE); //开启32位
    tmr_base_init(TMR2, 0xFFFFFFFF, 36000 - 1); //TMR2时钟为36MHz,1ms计数一次
    tmr_cnt_dir_set(TMR2, TMR_COUNT_UP);  //向上计数
    tmr_clock_source_div_set(TMR2, TMR_CLOCK_DIV1); //不管是TMR_CLOCK_DIV1,还是TMR_CLOCK_DIV4,实测定时器都是1ms计数一次
    tmr_counter_enable(TMR2, TRUE); //开始计数
}


附时钟树配置,使用官方工具生成:
/**
  * @brief  system clock config program
  * @NOTE   the system clock is configured as follow:
  *         system clock (sclk)   = hext * pll_mult
  *         system clock source   = pll (hext)
  *         - hext                = 8000000
  *         - sclk                = 144000000
  *         - ahbdiv              = 1
  *         - ahbclk              = 144000000
  *         - apb1div             = 8
  *         - apb1clk             = 18000000
  *         - apb2div             = 2
  *         - apb2clk             = 72000000
  *         - pll_mult            = 18
  *         - flash_wtcyc         = 4 cycle
  * @param  none
  * @retval none
  */


使用特权

评论回复
沙发
ArterySW| | 2023-5-10 09:23 | 只看该作者
CLKDIV这个bit 是用于 fDTS 分频的,而fDTS是用于滤波输入(CxDF),外部信号滤波(ESF)和死区时间(DTC)配置的。也就是说CLKDIV是用于配置TMR时钟和这三个信号(CxDF、ESF、DTC)的分频比率的,而不是直接对TMR时钟进行分频。

使用特权

评论回复
板凳
zpchan95|  楼主 | 2023-5-10 11:47 | 只看该作者
ArterySW 发表于 2023-5-10 09:23
CLKDIV这个bit 是用于 fDTS 分频的,而fDTS是用于滤波输入(CxDF),外部信号滤波(ESF)和死区时间(DTC)配 ...

明白了,感谢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

3

帖子

0

粉丝