完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
希望在原有代码的基础上加入PM组件实现低功耗,目前是直接进入待机模式就可以
但是在测试的时候发现,无法进入低功耗模式,现象如下: void enter_standby_mode(void) { pmu_wakeup_pin_enable(); pmu_to_standbymode(WFI_CMD); } 直接执行GD32的库函数进入低功耗模式,会失败,形式为按下唤醒键后不会重启,会继续执行后续的代码 改成PM组件使用rt_pm_request(PM_SLEEP_MODE_STANDBY);(会先调用rt_pm_release(PM_SLEEP_MODE_NONE)释放掉None模式的请求),也同1的情况类似,在IDLE线程中会通过_pm_change_sleep_mode调用自己写的sleep函数,然后执行pmu_to_standbymode 个人猜想是底层的驱动或者rt-thread的某些机制影响了代码的执行,但无法确定问题 我使用GD32的板级支持包新建了一个项目,只使用PM组件进行电源关系,不管是DEEPSLEEP还是standby模式都能正常进入与唤醒,但是在自己的项目上就不行,我尝试了将原项目的代码移植到新项目上,后续也出现无法进入睡眠模式的问题 我的测试情况是关闭了所有其他线程的初始化,直接在main函数中通过while(1)进入睡眠模式的,且在新项目上成功过 项目中使用的驱动有串口、adc(电压采集)、pwm(舵机控制)、gpio(led)和按钮 希望有大佬帮我分析下问题,实在没有头绪 |
|
相关推荐
1个回答
|
|
GD32F303无法进入低功耗模式的原因可能有以下几点:
1. 电源管理配置不正确:确保在初始化过程中正确配置了电源管理模块。 2. 唤醒源未配置:确保已经配置了唤醒源,如外部中断、定时器等。 3. 时钟配置问题:检查时钟配置是否正确,确保系统时钟在低功耗模式下仍然可以正常工作。 4. 其他外设干扰:检查其他外设是否在低功耗模式下正常工作,避免对低功耗模式的干扰。 为了解决这个问题,可以尝试以下步骤: 1. 确保电源管理模块已经正确初始化。在原有代码的基础上,加入PM组件的初始化代码,例如: ```c int main(void) { // 其他初始化代码 rt_pm_init(); // 其他代码 } ``` 2. 配置唤醒源。在进入低功耗模式之前,确保已经配置了唤醒源,例如: ```c void enter_standby_mode(void) { // 配置唤醒源,例如外部中断 // ... pmu_wakeup_pin_enable(); pmu_to_standbymode(WFI_CMD); } ``` 3. 检查时钟配置。确保在低功耗模式下,系统时钟仍然可以正常工作。可以在进入低功耗模式之前,将系统时钟切换到低速时钟源,例如: ```c void enter_standby_mode(void) { // 切换到低速时钟源 // ... // 配置唤醒源 // ... pmu_wakeup_pin_enable(); pmu_to_standbymode(WFI_CMD); } ``` 4. 在IDLE线程中使用RT-Thread的PM组件。在IDLE线程中,可以使用RT-Thread的PM组件来管理低功耗模式,例如: ```c #include void idle_thread_entry(void *parameter) { while (1) { rt_thread_mdelay(100); rt_pm_request(PM_SLEEP_MODE_STANDBY); } } ``` 5. 如果问题仍然存在,可以尝试使用调试工具(如ST-Link)来检查程序在低功耗模式下的执行情况,以便找到问题所在。 通过以上步骤,应该可以解决GD32F303无法进入低功耗模式的问题。如果问题仍然存在,请检查硬件连接和电源供应是否正常。 |
|
|
|
只有小组成员才能发言,加入小组>>
152个成员聚集在这个小组
加入小组【Vision Board创客营连载体验】基于RA8D1-Vision Board的自动路径规划小车
862 浏览 0 评论
【Vision Board创客营连载体验】基于Vision Board的垃圾分类
1181 浏览 0 评论
【Vision Board创客营连载体验】使用 Vision Board 做一个 UVC Camera
842 浏览 0 评论
【Vision Board创客营连载体验】TinyMaix进行手写数字识别
1147 浏览 0 评论
【Vision Board创客营连载体验】RA8D1-Vision Board使用7寸屏设置为RGB666大端模式模式成功显示摄像头图案
1136 浏览 0 评论
在RT-Thread Studio中新建的stm32f407-atk-explorer工程运行qemu失败,是什么原因引起的?
196浏览 3评论
STM32F407ZGT6 spi flash片选引脚无法被拉低的原因?怎么解决?
1185浏览 2评论
移植RT-THREAD在stm32开发板上,使用rt_kprintf不能正常打印的原因是什么?怎么解决?
506浏览 2评论
stm32f103zet用rtthread studio生成带finsh的项目程序,串口输入help没有反应是为什么?
511浏览 2评论
rtthread studio已经成功编写了外部flash下载算法,程序也能下载进去但是不能进行调试怎么办?
430浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 14:04 , Processed in 0.634357 second(s), Total 82, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号