0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

GD32 MCU进入低功耗模式导致无法再进行程序下载怎么办?

聚沃科技 2024-01-12 09:41 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

很多朋友在调试GD32 MCU的低功耗模式时会遇到一个问题:程序中让MCU进入了Sleep、Deepsleep或者Standby模式,之后MCU就无法再下载程序了。这是因为在低功耗模式下,MCU的SW口和JTAG口是无法访问的。比如下面的程序就会导致该问题发生:

wKgaomWgmE2Aefg_AABJMobNAdg143.png

该main函数中第一步是打开PMU时钟,然后马上让MCU进入Deepsleep模式,当你想要再次下载程序时,IDE会有如下错误提示(不同IDE报错不同):

wKgaomWgmFKAYQv9AAAVvPvOHgk731.png

遇到这种情况怎么办呢?难道只能重新换一颗芯片了?不不不,其实有方法解决这个问题的。

方法一:

GD32 MCU的启动模式根据芯片上的BOOT0和BOOT1脚是可以选择三种模式:

wKgZomWgmFiAGvg0AABXA7HXDfo744.png

一般情况下,BOOT0需要接地,也就是程序是从主Flash启动的,即从用户代码区启动,此时代码会运行到进入Deepsleep的语句。如果将BOOT0拉高,再重新上电MCU,此时程序会从出厂引导装载程序(ISP)或者片上SRAM运行,这样就不会运行用户代码,也就不会再让MCU进入低功耗了,此时通过IDE的全片擦除功能将Flash中的程序擦除掉,再将BOOT0恢复为低并重新上电后,就可以重新下载程序啦。

以聚沃东方红开发板为例:

wKgZomWgmF2AaS2bAABlx9iSmiI523.png

wKgaomWgmGKAHQypAANHdJpDaI8473.png

wKgZomWgmGeAarAjAAAgwlDV88E294.png

只需要将上图中方框处的两个排针跳线帽短接,再将Flash擦除即可。

方法二:

如果板子上的BOOT0不好再接高怎么办呢?不妨试试下面的办法:

将MCU的NRST脚和仿真器的NRST脚相连,这样在重新下载程序时,仿真器会先拉低NRST脚让MCU复位,再在很短的时间内进行程序下载。但这种办法不是每次都有效,这取决于是仿真器先进入下载状态还是MCU先进入低功耗状态。

一些建议:

1、在调试低功耗模式时,可以在main函数之前增加几秒钟的延时,这样在复位MCU后,在MCU进入低功耗前,你可以有足够的时间进行新的程序下载;

2、程序中设计算法,让一些条件达到后才让MCU进入低功耗模式,比如按键,这样在复位MCU后,就可以不让MCU进入低功耗了:

wKgaomWgmGyAG0VhAADLqpfLhnA375.png

好了,今天的内容就这些,如果还没有学废,那就评论区聊聊吧~记得点赞收藏加关注

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6074

    文章

    45340

    浏览量

    663480
  • mcu
    mcu
    +关注

    关注

    147

    文章

    18605

    浏览量

    386946
  • GD32
    +关注

    关注

    7

    文章

    429

    浏览量

    26937
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    在多任务系统中,如何平衡任务调度以防止因高负载导致的再次进入低功耗模式的延迟?

    在多任务系统中,如何平衡任务调度以防止因高负载导致的再次进入低功耗模式的延迟?
    发表于 12-04 06:37

    MCU芯片想实现低功耗如何做到?

    1、关闭非必要外设时钟 逐一检查MCU的外设,仅保留工作中必须的模块时钟,关闭未使用的外设时钟,以此减少不必要的功耗。 2、避免时钟倍频 在进入低功耗
    发表于 12-01 08:01

    CW32单片机UART低功耗模式的介绍

    (Sleep mode) • 深度休眠模式(DeepSleep mode) 电源上电后,系统自动进入运行模式。用户可通过软件程序进入
    发表于 11-19 06:08

    MCU主频与低功耗设计黄金法则

    快速完成然后深度睡眠”策略:这是低功耗设计的黄金法则。 1、让MCU在尽可能高的、能效比合理的频率下运行,最快速度完成任务。 2、完成任务后,立即进入尽可能深的低功耗
    发表于 11-18 07:48

    CW32 UART低功耗模式详解

    (Sleep mode) • 深度休眠模式(DeepSleep mode) 电源上电后,系统自动进入运行模式。用户可通过软件程序进入
    发表于 11-12 07:24

    【RA4M2-SENSOR】+低功耗模式功耗测试

    )。进入低功耗模式,从而减少能耗、延长系统工作时长。 为进行低功耗模式下的
    发表于 10-01 09:13

    gd32 env配置报错是什么原因呢?

    rtt官网下载源码和env后使用env配置gd32报如下错误请问是什么原因呢?
    发表于 09-25 06:19

    GD32的串口DMA收发数据失败怎么解决?

    我在使用RTT的GD32F303的BSP时,配置使用串口DMA收发(rt_device_open),发现错误,最终无法收发数据,对比了STM32的BSP发现在drv_usart.c中
    发表于 09-17 06:04

    基于兆易创新GD32系列MCU的GUI智能屏显解决方案

    随着人机交互需求的不断提升,图形用户界面(GUI)已成为各类智能设备的核心组成部分。兆易创新GD32系列MCU凭借其丰富的外设接口和强大的处理能力,为用户们提供了全面的GUI屏显解决方案,从低功耗小型显示屏到高分辨率彩色触摸屏,
    的头像 发表于 08-19 14:49 1331次阅读
    基于兆易创新<b class='flag-5'>GD32</b>系列<b class='flag-5'>MCU</b>的GUI智能屏显解决方案

    【RA4L1-SENSOR】07 低功耗待机模式功耗实测

    ;g_lpm0_cfg); 再修改显示时钟部分的代码,在处理完LCD显示部分之后,调用R_LPM_LowPowerModeEnter(&g_lpm0_ctrl);进入低功耗模式
    发表于 06-20 09:36

    兆易创新GD32 MCU闪耀2025慕尼黑上海电子展

    GD32 MCU以高性能与创新生态闪耀2025慕尼黑上海电子展,从工业,数字能源到汽车,物联网,以"芯"驱动数字化转型,让我们一起回顾下慕展上GD32 MCU强大产品矩阵和创新解决方案
    的头像 发表于 04-22 14:08 1884次阅读
    兆易创新<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b>闪耀2025慕尼黑上海电子展

    AG32 MCU 如何进入低功耗模式

    AG32 MCU 如何进入低功耗模式 AG32系列32位微控制器旨在为MCU用户提供新的自由度和丰富的兼容外设,以及兼容的引脚和
    发表于 04-21 11:29

    GD32与STM32有什么区别

    电子发烧友网站提供《GD32与STM32有什么区别.docx》资料免费下载
    发表于 04-03 17:27 0次下载

    GD32单片机GPIO结构及注意事项

    电子发烧友网站提供《GD32单片机GPIO结构及注意事项.pdf》资料免费下载
    发表于 02-07 17:27 3次下载
    <b class='flag-5'>GD32</b>单片机GPIO结构及注意事项

    #新年新气象,大家新年快乐!#emWin应用开发——基于GD32

    emWin 是一个高效的嵌入式图形用户界面(GUI)库,广泛应用于各种嵌入式系统中。GD32 是一系列由 GigaDevice 公司推出的高性能、低功耗的 ARM Cortex-M 微控制器。将
    发表于 01-14 16:34