项目场景:
公司开发了一款医疗设备,其中的MCU用到的是型号为STM32F103ZET6的芯片,按照硬件工程师给出的原理图建立了工程后,开始用STM32自带的烧写软件(STM32CubeProgrammer)烧录测试程序。
问题描述
发现用STM32自带的烧写软件(STM32CubeProgrammer)读取芯片信息时一直报错,换了好几块控制板都是一样的现象。
原因分析:
起初是怀疑MCU芯片有问题,但是换了好几块芯片还是一样的情况,于是查看BOOT0和BOOT1的高低电平配置情况,发现烧写程序时确实BOOT0拉高了,运行时确实BOOT0拉低了。
解决方案:
偶然尝试了将BOOT1拉低,发现能够正常烧录程序了。原来自己想当然的认为BOOT1对于程序的烧写不会有任何影响,因此一直处于悬浮状态,所以烧写时一直会报错。