控制/MCU
相信很多朋友们都遇到过,自信满满的将程序下载到板子上,发现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的技巧,期待下次分享。
审核编辑:黄飞
全部0条评论
快来发表一下你的评论吧 !