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

STM32F103RE使用FreeRTOS的Tickless低功耗模式的问题

[复制链接]
Ankky 提问时间:2019-12-31 10:09 /
各位大佬好,STM32F103RE使用FreeRTOS的Tickless低功耗模式(sleep模式)时遇到一个问题:就是每隔1ms单片机就会从sleep模式下唤醒一次。
程序中共有2个任务,第一个任务每隔500ms翻转一次IO口(PB12)电平;第二个任务每隔1000ms唤醒执行一次,2个任务如图1所示。
我的理解正常的逻辑是:单片机进入tickless模式(sleep模式)后,应该500ms左右唤醒一次是正常的,可是试验结果无情的打了我的脸,1ms竟然就唤醒一次,测量波形如图2所示测得的PA2脚电平翻转(PA2的电平在这个PostSleepProcessing(uint32_t *ulExpectedIdleTime)函数内部进行翻转,如图3。这个函数是单片机从Sleep模式醒来后就会执行一次)。
程序中没有开启其他外设中断,请各位大佬帮忙分析一下原因,感激不尽。

图1:程序中的2个任务

图1:程序中的2个任务

图2:单片机为何1ms唤醒一次??

图2:单片机为何1ms唤醒一次??

图3:单片机唤醒后执行的函数

图3:单片机唤醒后执行的函数
收藏 评论3 发布时间:2019-12-31 10:09

举报

3个回答
Ankky 回答时间:2020-1-4 11:17:41
别沉啊,求指点。
butterflyspring 回答时间:2020-2-10 16:46:21
  请确认一下SysTick中断是否关闭了,系统是否进入sleep模式。建议最小化系统,尝试5ms/10ms/20… toggle gpio。
Ankky 回答时间:2020-3-22 11:55:01
butterflyspring 发表于 2020-2-10 16:46
请确认一下SysTick中断是否关闭了,系统是否进入sleep模式。建议最小化系统,尝试5ms/10ms/20… toggle g ...

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