打印

APM32F103CBT6定时器1和定时器2的输入频率相差4倍

[复制链接]
1268|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
秋染半叶红|  楼主 | 2024-4-20 11:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
原本想使用定时器1 定时一个溢出时间为1ms的计时
下面是我的定时器1初始化参数
TMR_BaseConfig_T baseConfig;
            /* TMR1 Configure */
    baseConfig.clockDivision = TMR_CLOCK_DIV_1;
    baseConfig.countMode = TMR_COUNTER_MODE_UP;
    baseConfig.division = 8;
    baseConfig.period = 1000;
    TMR_ConfigTimeBase(TMR1, &baseConfig);




在中断函数中选择了一个输出脚进行电平翻转
示波器测量到的频率是 1KHz
反推回去计算:1000 * 1000 * (8 + 1) = 9000000 计算出才为9M的定时器1输入频率
查了一下数据手册和仿真时候的寄存器数值
系统时钟选的是PLL,原理图上接入XTAL-IN 和 XTAL-OUT 引脚的晶振为8MHz,经过9倍倍频之后输入AHB,AHB也没有分频直接给到的APB1 和 APB2。APB1的输入时钟寄存器是2分频,我通过使用与定时器1配置相同的配置去配置定时器2,一样在中断函数中翻转同一个输出脚,示波器测量得到的频率是4KHz,反推计算:4000 * 1000 * (8 + 1) = 36000000 计算为36MHz,符合寄存器设定中的系统时钟72MHz 2分频之后的数值,仿真时查看 RCM_CFG 寄存器中 APB1PSC的值为0x04,APB2PSC的值为0x03,PLLMULCFG的值为0x07,我尝试过将APB2PSC的值修改为0x04但是输出和0x03相同,只有改为0x05时输出频率会再次减少一半从1KHz变为500Hz,现在找不出是什么原因导致定时器1的时钟不是我所想的72M,求帮助。

使用特权

评论回复

相关帖子

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

本版积分规则

2

主题

3

帖子

0

粉丝