你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32L0 上电复位信号完成到main函数之间需要多少时间

[复制链接]
cshxy 提问时间:2019-4-30 14:32 /
我现在使用cpu型号是STM32L0C6T6,在使用中发现一个有趣的现象:上电复位完成后到main函数之间的延时有150~200ms,每次上电后的延时时间还不固定。如果采用复位信号强制为低后,则复位信号完成后到main函数之间的延时基本为0。
也就是说延时来自冷启动(上电复位),查资料有可能来自cpu自带的上电电压稳定时间,但这个时间也太长了
不知道大家有没有遇到过这种情况,如果要减短这个时间,应该怎么做?



冷启动(上电复位)复位信号和标记

冷启动(上电复位)复位信号和标记

热启动(强制复位)复位信号和标记

热启动(强制复位)复位信号和标记
收藏 评论12 发布时间:2019-4-30 14:32

举报

12个回答
MrJiu 回答时间:2019-4-30 14:56:21
这个确实是不太固定的,特别是你使用外部晶振,如果用内部晶振,应该会稳定一点吧,还有就是,上电也是一个过程,从0到可以工作的电压,不知道你的时间具体怎么测量的!!!!

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

七哥 回答时间:2019-4-30 17:00:01
具体情况具体分析,没发现有问题。不过也没用过你说的型号“STM32L0C6T6”。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

tanic 回答时间:2019-4-30 20:28:37
不用看了晶振电路问题,换换电容和晶振。
时钟初始化那里会等待外部时钟稳定

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

cshxy 回答时间:2019-5-5 10:20:46
MrJiu 发表于 2019-4-30 14:56
这个确实是不太固定的,特别是你使用外部晶振,如果用内部晶振,应该会稳定一点吧,还有就是,上电也是一个 ...

主时钟就是用的内部晶振,不过有一个外部rtc 32.768晶振,会在系统时钟中初始化。
测量过程如下
main()
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
测试引脚拉高
}
示波器一路接复位信号,一路接测试引脚,由于引脚拉高需要在gpio初始化后才能拉高,所以必定需要在系统时钟配置后测量,图一就是测得这两引脚。但是否是在SystemClock_Config中延时过长呢?
在HAL_Init中已经完成滴答时间初始化,在测试引脚拉高处的滴答时钟只有几微秒,也就是说延时并不是在SystemClock_Config中产生的,而是在main之前产生的。
除非滴答时间不可信。
cshxy 回答时间:2019-5-5 10:26:54
tanic 发表于 2019-4-30 20:28
不用看了晶振电路问题,换换电容和晶振。
时钟初始化那里会等待外部时钟稳定 ...

根据系统滴答时间计数,系统时钟初始化只有几毫秒。
感觉是与系统的POR/BOR/PDR有关,只是这方面的资料太少了。
cshxy 回答时间:2019-5-5 10:28:47
toofree 发表于 2019-4-30 17:00
具体情况具体分析,没发现有问题。不过也没用过你说的型号“STM32L0C6T6”。 ...

多谢回复!
正常使用时,哪怕是使用电池供电,都可能不会感觉到它的存在
tanic 回答时间:2019-5-5 14:04:02
SystemInit
cshxy 回答时间:2019-5-5 14:51:47

SystemInit()中没啥延时的内容啊,就是些RCC初始化字,没有仔细去看这些配置字的含义,难道这些配置字会导致延时?不会吧
4.png
edmundlee 回答时间:2019-5-5 15:03:43
延迟主要在晶振, 特别是32.768Kz, 如果说没用到的LSE的话, 可以把初始化LSE的代码屏蔽

以前也做过一项目, 需要快速起动, 就是卡在32.768哪儿, 后来改为只使能LSE, 但不等待它的起动, 先做其它任务, 等闲下来时处理跟LSE有关的初始化设置。

评分

参与人数 1蝴蝶豆 +3 收起 理由
STMCU + 3

查看全部评分

tanic 回答时间:2019-5-5 15:36:58
本帖最后由 tanic 于 2019-5-5 15:39 编辑

没仔细看,你用的HAL库
SystemClock_Config
HAL_RCC_OscConfig ,HAL_RCC_ClockConfig 里面有不少while  

大抵是 是等待低速时钟稳定或者等待高速时钟稳定等等

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

cshxy 回答时间:2019-5-6 09:51:16
edmundlee 发表于 2019-5-5 15:03
延迟主要在晶振, 特别是32.768Kz, 如果说没用到的LSE的话, 可以把初始化LSE的代码屏蔽

以前也做过一项目 ...

正解,虽然还没想好怎么处理它,但去掉rtc后正常!
多谢!
SystemClock_Config多次对滴答时钟清0,导致滴答时间不可靠。
cshxy 回答时间:2019-5-6 09:55:07
tanic 发表于 2019-5-5 15:36
没仔细看,你用的HAL库
SystemClock_Config
HAL_RCC_OscConfig ,HAL_RCC_ClockConfig 里面有不少while  

是的。
SystemClock_Config多次对滴答时钟清0,SystemClock_Confiig之后滴答时间才能用,导致我得到了一个错误信息。
确实是32.768k晶振引起,多谢!
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版