OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4025|回复: 2

freeRTos 进行停止模式时的操作

[复制链接]

48

主题

208

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1371
金钱
1371
注册时间
2015-3-24
在线时间
190 小时
发表于 2019-10-22 13:52:23 | 显示全部楼层 |阅读模式
10金钱
本帖最后由 1206447373 于 2019-10-22 13:53 编辑

大家好!     最近使用freeRTos调试MCU,其中不带系统时,直接调用库函数就能进行停止模式(低功耗的一种),
并且可以通过key(外部中断)进行唤醒。但是使用了操作系统后,进行了停止模式马上又被唤醒了。
应该时滴答定时器中断唤醒的,我尝试直接关滴答定时器中断,结果直接重新,哪位老师可以指点
一下呢?谢谢,进入停止模式后什么都不用干,只是等待外部中断唤醒就行,所以tickless估计不
适合。不知道我理解对没@正点原子




最佳答案

查看完整内容[请看2#楼]

关滴答定时器中断可以的,例如F103参考 SysTick->CTRL &= ~SysTick_CTRL_ENABLE_Msk; RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR , ENABLE); PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI);//进入停止模式 //wakeup here... portENTER_CRITICAL(); RCC_HSEConfig(RCC_HSE_ON); while (RCC_GetFlagStatus(RCC_FLAG_HSERDY) == RESET){} RCC_PLLCmd( ...
小时在工地上玩,捡了一个根木棒回家,麻麻问我捡这破玩意回来有什么用?我脑子一热,就说“你可以用它来打我啊!!”
于是,一根木棒伴随了我很多年。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

82

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3158
金钱
3158
注册时间
2017-7-10
在线时间
361 小时
发表于 2019-10-22 13:52:24 | 显示全部楼层
关滴答定时器中断可以的,例如F103参考
                                        SysTick->CTRL &= ~SysTick_CTRL_ENABLE_Msk;  
                                        RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR , ENABLE);
                                        PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI);//进入停止模式       
                                        //wakeup here...
                                       
                                        portENTER_CRITICAL();
                                        RCC_HSEConfig(RCC_HSE_ON);
                                        while (RCC_GetFlagStatus(RCC_FLAG_HSERDY) == RESET){}

                                        RCC_PLLCmd(ENABLE);
                                        while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET){}
                                        RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
                                               
                                        while (RCC_GetSYSCLKSource() != 0x08){}
                                               
                                       
                                        SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk;
                                        portEXIT_CRITICAL();
回复

使用道具 举报

48

主题

208

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1371
金钱
1371
注册时间
2015-3-24
在线时间
190 小时
 楼主| 发表于 2019-10-23 14:19:55 | 显示全部楼层
xyzhu 发表于 2019-10-23 09:50
关滴答定时器中断可以的,例如F103参考
                                        SysTick->CTRL &= ~SysTick_CTRL_ENABLE_Msk;  
                                        RCC_AP ...

thanks
小时在工地上玩,捡了一个根木棒回家,麻麻问我捡这破玩意回来有什么用?我脑子一热,就说“你可以用它来打我啊!!”
于是,一根木棒伴随了我很多年。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 22:10

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表