MCU为什么上电不启动?

        都遇到过这样的问题吧,自信满满的把程序下载到板子上,结果发现MCU居然没启动。

        出现这个问题有很多原因,总结为以下五点:

        第一,boot引脚电平不对,例如在GD32的MCU上,boot引脚决定了MCU的启动方式。通常boot0引脚下拉时是flash启动,如果boot电平不对就不会执行我们下载的程序了。

        第二,NRST拉高了吗?NRST是MCU的复位引脚,如果复位引脚没有拉高,程序也不会启动。复位引脚一般和电源以及连接电路有关,电源上升到POR-2ms后NRST一般会拉高,如果没有拉高那还要进一步检查电源和电路。 

        第三,VDD和VDDA电压满足工作范围了吗?平时大家一般都关注VDD电压,但VDDA电压也很关键。我们需要确定VDD和VDDA都达到芯片的工作电压范围,才能让芯片正常运行。

        第四,晶振和程序里的配置匹配吗?如果MCU超频了,那么也会上电后跑飞导致不启动的现象,当我们的晶振大小大于程序配置不一致时,就会出现我们以为主频正常,但芯片实际已经超频的离谱了。

        第五,固件和实际芯片型号或类型不匹配。以我们的老朋友GD32F303为例,我们打开固件库会看到GD32F30x固件库实际对应了GD32F303、F305、F307不同芯片类型。通过宏定义选择,它们在时钟上就存在一定区别,固件配置错的话程序可能就是在时钟配置里。

        如果还没有找到问题,那么就大胆的进入debug模式,千万不要对自己的程序太自信,真想甚至可能就是打错一个字母 。

相关推荐

  1. 为什么游戏APP选择架?

    2023-12-20 05:42:02       58 阅读
  2. MCU启动流程

    2023-12-20 05:42:02       36 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-20 05:42:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-20 05:42:02       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-20 05:42:02       82 阅读
  4. Python语言-面向对象

    2023-12-20 05:42:02       91 阅读

热门阅读

  1. 是的,决定放弃算法去机器学习了

    2023-12-20 05:42:02       60 阅读
  2. Unity工具栏介绍

    2023-12-20 05:42:02       56 阅读
  3. 深度比较(lodash 的 isEqual 方法)

    2023-12-20 05:42:02       64 阅读
  4. 通过fu过 Function Calling 查询数据库

    2023-12-20 05:42:02       49 阅读
  5. 普冉(PUYA)单片机开发笔记 [完结篇]:使用体会

    2023-12-20 05:42:02       74 阅读
  6. 高空作业MR混合现实情景实训教学应用

    2023-12-20 05:42:02       59 阅读
  7. 【算法小题 go程序版】递归练习 -- 猴子吃桃问题

    2023-12-20 05:42:02       57 阅读
  8. 链式表的实现

    2023-12-20 05:42:02       53 阅读
  9. Docker使用7-Use Docker Compose

    2023-12-20 05:42:02       83 阅读
  10. 【嵌入式面试】嵌入式经典面试题汇总(C语言)

    2023-12-20 05:42:02       48 阅读