本人使用STM32L052K8T6时出现采用全速运行时(32M)移植的延时程序无问题,当降低频率时,会出现延时卡死的问题,对比全速和非全速时时钟的配置,经过试验发现全速时生成的配置文件中初始化的是FLASH_LATENCY_1,而非全速时初始化的是FLASH_LATENCY_0,
当我在非全速运行时(16M)将FLASH_LATENCY_0改为FLASH_LATENCY_1时,程序刚开始能运行,快运行1分钟时,单片机死机,不明白FLASH_LATENCY_1是配置的啥,如何改才能使非全速时也能用延时,延时函数肯定没问题的 延时函数的初始化代码如下 void delay_init() { /**Configure the Systick interrupt time */ // HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000); /**Configure the Systick */ HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK_DIV8);//ÄÚ²¿Ê±ÖÓ /* SysTick_IRQn interrupt configuration */ // HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0); fac_us=2; //ΪϵͳʱÖ fac_ms=(uint16_t)fac_us*1000; //·ÇOSÏÂ,´ú±íÿ¸ömsÐèÒªµÄsystickʱÖÓÊý } |
微信公众号
手机版
评分
查看全部评分
// HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);
/* SysTick_IRQn interrupt configuration */
// HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);
评分
查看全部评分