SysTick 频率上不去是怎么回事?
403A主频是240M,8M晶振倍频30倍后,发觉延时不对,测试了一下,当倍频超过19倍频后,SysTick 就没有什么变化了,造成延时时间不对,倍频19以下是正常的.不知道问题出在哪里? 是不是有个等待时间,我记得好像是有等待时间的。不同的频率有不同的等待周期 我记得systick是一个24位的计数器。会不会是计数器溢出了啊 开启PLL锁相环了吗? 如下BSP tmeplates工程已经调用了基于systick的delay函数,可以参考一下AT32F403A_407_Firmware_Library/project/at_start_f403a/templates 某些 MCU 可能在硬件上有限制,导致 SysTick 的频率无法达到预期。查阅 AT32 的数据手册,确认是否有任何硬件限制。 SysTick 定时器可以使用不同的时钟源。确保你选择了正确的时钟源,并且该时钟源的频率足够高。 时钟配置错误 外部时钟未正确使能或频率不符 SysTick中断的优先级设置可能会影响其响应速度。如果SysTick中断的优先级设置过低,可能会被其他高优先级的中断抢占,导致SysTick的中断响应延迟。 SysTick的时钟频率可能需要经过分频后才能达到预期的频率。如果分频设置不当,可能会导致SysTick的实际频率低于预期。 确保SysTick的时钟频率来源设置正确。例如,在STM32等微控制器中,SysTick可以选择使用内部高速时钟(HCLK)作为时钟源,或者选择其他时钟源。如果时钟源设置错误,将直接影响SysTick的频率。 检查SysTick的分频设置 SysTick重载值设置不合理 SysTick的时钟源通常可以选择系统时钟(SysClk)或其他时钟源,如内部时钟(Internal Clock)。如果SysTick的时钟源选择错误,可能会导致频率不符合预期。 如果SysTick使用外部晶振作为时钟源,需要确保晶振的稳定性。不稳定的晶振可能导致SysTick频率波动或无法达到预期值。 电源供应问题 检查系统时钟的倍频和分频设置。如果倍频设置过低或分频设置过高,将导致系统时钟频率降低,从而影响SysTick的频率。 SysTick 定时器自身配置问题 有时候,编译器的优化设置可能会影响到SysTick的正常工作。尝试调整编译器的优化级别,看是否能够解决问题。
页:
[1]
2