问答

汇集网友智慧,解决技术难题

秋染半叶红

TA的家园币:32  

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

    原本想使用定时器1定时一个溢出时间为1ms的计时下面是我的定时器1初始化参数TMR_BaseConfig_TbaseConfig;/*TMR1Configure*/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,符合寄存器设定中的系统时钟72MHz2分频之后的数值,仿真时查看RCM_CFG寄存器中APB1PSC的值为0x04,APB2PSC的值为0x03,PLLMULCFG的值为0x07,我尝试过将APB2PSC的值修改为0x04但是输出和0x03相同,只有改为0x05时输出频率会再次减少一半从1KHz变为500Hz,现在找不出是什么原因导致定时器1的时钟不是我所想的72M,求帮助。