|
我现在使用cpu型号是STM32L0C6T6,在使用中发现一个有趣的现象:上电复位完成后到main函数之间的延时有150~200ms,每次上电后的延时时间还不固定。如果采用复位信号强制为低后,则复位信号完成后到main函数之间的延时基本为0。 也就是说延时来自冷启动(上电复位),查资料有可能来自cpu自带的上电电压稳定时间,但这个时间也太长了 不知道大家有没有遇到过这种情况,如果要减短这个时间,应该怎么做? |
冷启动(上电复位)复位信号和标记
热启动(强制复位)复位信号和标记
微信公众号
手机版
评分
查看全部评分
评分
查看全部评分
时钟初始化那里会等待外部时钟稳定
评分
查看全部评分
主时钟就是用的内部晶振,不过有一个外部rtc 32.768晶振,会在系统时钟中初始化。
测量过程如下
main()
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
测试引脚拉高
}
示波器一路接复位信号,一路接测试引脚,由于引脚拉高需要在gpio初始化后才能拉高,所以必定需要在系统时钟配置后测量,图一就是测得这两引脚。但是否是在SystemClock_Config中延时过长呢?
在HAL_Init中已经完成滴答时间初始化,在测试引脚拉高处的滴答时钟只有几微秒,也就是说延时并不是在SystemClock_Config中产生的,而是在main之前产生的。
除非滴答时间不可信。
根据系统滴答时间计数,系统时钟初始化只有几毫秒。
感觉是与系统的POR/BOR/PDR有关,只是这方面的资料太少了。
多谢回复!
正常使用时,哪怕是使用电池供电,都可能不会感觉到它的存在
SystemInit()中没啥延时的内容啊,就是些RCC初始化字,没有仔细去看这些配置字的含义,难道这些配置字会导致延时?不会吧
以前也做过一项目, 需要快速起动, 就是卡在32.768哪儿, 后来改为只使能LSE, 但不等待它的起动, 先做其它任务, 等闲下来时处理跟LSE有关的初始化设置。
评分
查看全部评分