相信很多朋友们都遇到过,自信满满的将程序下载到板子上,发现MCU居然没启动。 那这个现象可能有很多问题会导致,让我们来看看会有哪些原因。 1、BOOT引脚电平不对: 在GD32 MCU上,BOOT引脚决定了MCU的启动方式,通常BOOT0引脚下拉时是flash启动,如果BOOT电平不对就不会执行我们下载的程序了。 2、NRST拉高了吗? NRST是MCU的复位引脚,如果复位引脚没有拉高,程序也不会启动,复位引脚一般和电源以及连接电路有关,电源上升到POR 2ms后NRST一般会拉高,如果没有拉高那还要进一步检查电源和电路。 3、VDD和VDDA电压满足工作范围了吗? 平时大家一般关注VDD电压,但VDDA电压也很关键,我们需要确定VDD和VDDA都达到芯片的工作电压范围才能让芯片正常运行。 4、晶振和程序里的配置匹配吗? 如果mcu超频了,那么也会上电后跑飞导致不启动的现象,当我们晶振大小大于程序配置不一致时,就会出现我们以为主频正常,但芯片实际已经超频得离谱了。 5、固件和实际芯片型号或类型不匹配 以GD32F303为例,我们打开固件库会看到GD32F30x(读叉)固件库实际对应了GD32F303、F305、F307不同芯片类型,通过宏定义选择,他们在时钟上就存在一定区别,固件配置错的话程序可能就是在时钟配置里啦。 什么,如果还没找到问题,那就大胆的进入debug模式,千万不要对自己的程序太自信哦,真相甚至可能就是打错一个字母,关于软件debug的技巧,期待下次分享。
本教程由GD32 MCU方案商聚沃科技原创发布,了解更多GD32 MCU教程,关注聚沃科技官网,GD32MCU技术交流群:859440462
|