我现在使用cpu型号是STM32L0C6T6,在使用中发现一个有趣的现象:上电复位完成后到main函数之间的延时有150~200ms,每次上电后的延时时间还不固定。如果采用复位信号强制为低后,则复位信号完成后到main函数之间的延时基本为0。 也就是说延时来自冷启动(上电复位),查资料有可能来自cpu自带的上电电压稳定时间,但这个时间也太长了 不知道大家有没有遇到过这种情况,如果要减短这个时间,应该怎么做? |
å·å¯å¨ï¼ä¸çµå¤ä½ï¼å¤ä½ä¿¡å·åæ è®°
çå¯å¨ï¼å¼ºå¶å¤ä½ï¼å¤ä½ä¿¡å·åæ è®°
STM32L011D4芯片用SWD无法下载程序
求助:STM32L0系列标准库哪里下?
STM32L051低温时LPUART串口波特率异常
STM32L051单片机ADC如何彻底关闭?
STM32L051C8进入低功耗模式电流偏大
STM32L052C8T6通过I2C模拟读16位数
STM32L0的VLCD外接5V会有问题吗
求助!!使用STM32L073 IO口模拟IIC接口读写AT24CM01 程序不停...
STM32L072RB写Bank2 EEPROM不响应中断
STM32L031无法进入boot
评分
查看全部评分
评分
查看全部评分
时钟初始化那里会等待外部时钟稳定
评分
查看全部评分
主时钟就是用的内部晶振,不过有一个外部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有关的初始化设置。
评分
查看全部评分
没仔细看,你用的HAL库
SystemClock_Config
HAL_RCC_OscConfig ,HAL_RCC_ClockConfig 里面有不少while
大抵是 是等待低速时钟稳定或者等待高速时钟稳定等等
评分
查看全部评分
正解,虽然还没想好怎么处理它,但去掉rtc后正常!
多谢!
SystemClock_Config多次对滴答时钟清0,导致滴答时间不可靠。
是的。
SystemClock_Config多次对滴答时钟清0,SystemClock_Confiig之后滴答时间才能用,导致我得到了一个错误信息。
确实是32.768k晶振引起,多谢!