caoenq 发表于 2019-12-31 10:09:18

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

各位大佬好,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模式醒来后就会执行一次)。
程序中没有开启其他外设中断,请各位大佬帮忙分析一下原因,感激不尽。

caoenq 发表于 2020-1-4 11:17:41

别沉啊,求指点。

butterflyspring 发表于 2020-2-10 16:46:21

请确认一下SysTick中断是否关闭了,系统是否进入sleep模式。建议最小化系统,尝试5ms/10ms/20… toggle gpio。:)

caoenq 发表于 2020-3-22 11:55:01

butterflyspring 发表于 2020-2-10 16:46
请确认一下SysTick中断是否关闭了,系统是否进入sleep模式。建议最小化系统,尝试5ms/10ms/20… toggle g ...

收到,谢谢版主的回复。
页: [1]
查看完整版本: STM32F103RE使用FreeRTOS的Tickless低功耗模式的问题