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

STM32低功耗 UCOSII系统下调用SystemInit问题

[复制链接]
木桩上的跛脚人 提问时间:2017-5-11 16:32 /

           大家好,因为做stm32f105系列的低功耗,进入停止莫时候,需要调用SystemInit恢复时钟,但发现调用SystemInit之后整个操作系统就不正常跑了,用的是ucosii,经测试发现,在正常情况下(未进入停止模式)只要启动操作系统后OSStart();,,,再次调用SystemInit这个函数,系统的滴答时钟就停止了,,,,但是用在stm32f103系列的片子上就不会出现该问题,同样的操作系统,调用SystemInit几遍都正常跑,,,,莫名其妙,找了有两天了,求大神指点方向。。。。。。
          备注,在操作系统启动前,,,调用多少遍都么问题,,,,,,谢谢各位大神了,,没有思路帮忙顶下也感激不尽。


收藏 1 评论7 发布时间:2017-5-11 16:32

举报

7个回答
xmshao 回答时间:2017-5-11 17:49:29
从程序运行角度讲,STM32F103与stm32f107的差别主要体现在启动文件的差异,
具体到启动文件里,最可能出问题的地方就是那个中断矢量的定义问题,你核对下。
MrJiu 回答时间:2017-5-12 09:32:05
你这个问题很明确。。。。你先看一下SystemInit里面有木有系统滴答时钟的设置,然后自己查看一下从停止模式恢复的时候,系统滴答模式的相关寄存器的数值,不就可以啦!!!!虽然,你仅仅需要的是去看一下系统滴答时钟寄存器的介绍!!!!
木桩上的跛脚人 回答时间:2017-5-12 15:32:23
xmshao 发表于 2017-5-11 17:49
从程序运行角度讲,STM32F103与stm32f107的差别主要体现在启动文件的差异,
具体到启动文件里,最可能出问 ...

嗯嗯,再调用系统时钟初始化函数之后,重新初始化了中断向量表,现在跑起来是正常的来,但不知道为啥就好了,问题出在哪也不知道。。还请帮忙分析。。
木桩上的跛脚人 回答时间:2017-5-12 15:32:53
MrJiu 发表于 2017-5-12 09:32
你这个问题很明确。。。。你先看一下SystemInit里面有木有系统滴答时钟的设置,然后自己查看一下从停止模式 ...

嗯嗯,重新初始化终端向量表就好了,,但没搞明白为啥,,
木桩上的跛脚人 回答时间:2017-5-12 15:38:20
木桩上的跛脚人 发表于 2017-5-12 15:32
嗯嗯,再调用系统时钟初始化函数之后,重新初始化了中断向量表,现在跑起来是正常的来,但不知道为啥就好 ...

我说的F103的程序时从起始地址开始跑的,,,,,而我调试的105系列,不是从起始地址开始跑,重新初始化了中断向量表,就可以了,我还没找到,系统初始化会对中断向量表会产生什么影响
木桩上的跛脚人 回答时间:2017-5-12 15:49:06
木桩上的跛脚人 发表于 2017-5-12 15:38
我说的F103的程序时从起始地址开始跑的,,,,,而我调试的105系列,不是从起始地址开始跑,重新初始化 ...

SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH. */  

在,SystemInit 里确实有这么一个语句,,,太大意了,之前一直以为只是配置了时钟。。。多谢大神指点,太感谢了 ,
废鱼 回答时间:2017-5-12 16:07:43
从待机模式唤醒后的代码执行等同于复位后的执行(采样启动模式引脚、读取复位向量等)。从这里看到的,应该是需要处理的。

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版