在测试stm32 systick延时函数时,用的keil软件仿真测试时间中发现延时500ms以内基本准确,当大于这个数值延时总是保持在500ms,出现问题,本着发现问题解决问题的思想,做如下实验。
实验代码
static uint8_t fac_us=0;//us延时倍乘数
static uint16_t fac_ms=0;//ms延时倍乘数
//初始化延时倍乘数
void delay_init()
{
fac_us=SystemCoreClock/8000000; //(,即SysTick时钟频率==HCLK/8==SystemCoreClock/8,因此,SysTick一个计数时长 //(1/(SystemCoreClock/8)),1us需要计数次数为