嵌入式学习小组
直播中

范琴英

7年用户 195经验值
私信 关注

stm32f030如何使用freertos的tickless模式下的stop休眠问题?

使用STM32f030使用freertos的tickless模式下的stop休眠出现任务无法执行
工程描述
1、开启tickless模式,模仿M3的空闲任务编写 portSUPPRESS_TICKS_AND_SLEEP函数进入休眠
2、使用RTC的alARMA中断每500ms唤醒一次,RTC中断服务函数只是清中断操作,无任何其他操作。
3、创建一个led翻转的指示灯任务, vTaskDelay(100);100ms执行一次灯的翻转
问题:
实测stop休眠电流在2ua左右,比sleep休眠的2ma小很多
问题
1、让MCU进入stop深度休眠:发现led任务执行一次后,在执行一次stop休眠后,即使RTC唤醒了MCU也无法执行LED任务,RTC中断程序正常执行,每500ms执行一次
2、让MCU进入sleep休眠:LED任务则正常执行,stop模式和sleep模式有区别?
不知道是什么原因,原子哥和其他人有遇到过类似的吗?能分享出一个带RTC唤醒的tickless程序参考下么。

回帖(6)

周伟

2020-6-15 12:55:20
stop模式重启以后,应该是类似软复位重启吧?
举报

王凯

2020-6-15 13:11:19
你确认你的stop模式是用RTC唤醒的吗?不是EXTI才能推出stop模式的吗
举报

刘欢

2020-6-15 13:17:54
换成exti唤醒也无法执行led任务,
举报

陈红

2020-6-15 13:36:06
软件复位是standby待机模式,stop模式就是最低的休眠保持ram数据模式,原子能试下103进入stop模式freertos是否正常么
举报

更多回帖

发帖
×
20
完善资料,
赚取积分