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

STM32f1 bootloader与休眠唤醒

[复制链接]
JudeScorpio 提问时间:2018-3-12 10:51 /
编写程序遇见如下问题,单独编写休眠唤醒程序,采用standby与stop模式 外部高电平中断,均可以正常唤醒。但是前面加入bootloader后,则无法唤醒。

是否为boot与app的中断向量表发生过偏移导致?  

下一步预计准备 在boot中编写中断唤醒程序,APP的睡眠设置 将中断向量进行偏移至BOOT中,不知是否可以?
收藏 1 评论9 发布时间:2018-3-12 10:51

举报

9个回答
JudeScorpio 回答时间:2018-3-12 10:52:46
单独的boot也是可以正常启动
废鱼 回答时间:2018-3-12 11:08:46
唤醒后是直接复位吗?复位以后,boot程序应该跳转到应用程序。应用程序是否有重新配置中断向量?可以在boot加串口输出,看一下是不是正常运行。

评分

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

查看全部评分

七哥 回答时间:2018-3-12 12:32:26
standby唤醒后,应该是相当于复位。
stop唤醒后,应该是可以接着执行程序的吧。不同的是,唤醒后系统时钟变为HSI,如果使用了其它系统时钟,需要重新配置。

评分

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

查看全部评分

xmshao 回答时间:2018-3-12 16:32:39
首先你要保证你运行完IAP后进入APP时程序运行时正常的,否则后续休眠、唤醒的正常运行
就如镜中花水中月了。

跳进APP时,不再有来自IAP的中断请求【含未处理的中断请求】;VECTOR矢量要配置正确;相应的用于唤醒的中断或事件做好正确配置;

评分

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

查看全部评分

butterflyspring 回答时间:2018-3-12 16:38:21
来点干货..AN4657-STM32Cube_IAP_using_UART....首先统一一下叫法,MCU自带的,叫bootloader,如果你是在user flash加上自己的启动软件,那个在stm32里面,叫IAP.如果你是用IAP,那你直接参考AN4657就好了,中断向量是要变化的,偏移一下就好.具体.......自己看看例程咯..

评分

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

查看全部评分

123e-396866 回答时间:2018-5-26 00:20:41
zanyige
曲阿子期 回答时间:2019-5-10 18:39:58
我也遇到了同样的问题,但找到了原因,在唤醒后一般要重新 SystemInit(); 这样就把 main()开始设置的中断向量偏移量重置了,所以还要再 SystemInit(); 之后再设置一下偏移量 NVIC_SetVectorTable()
daughtersea 回答时间:2020-4-14 17:49:03
我现在用的是stmh743,带bootloaer,周期休眠(standby模式),rtc或者wkup唤醒,但是跑个一段时间,bootloaer跳转到app就卡住了,已经进入app,是在app里面死掉的。
daughtersea 回答时间:2020-4-14 17:50:31
帆赛坎塞杆

所属标签

相似问题

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