上手Nucleo H743ZI 开发板下载失败问题解决方法
准备研究Stm32H7,买了块Nucleo H743ZI开发板回来研究。之前一直使用的是stm32F4,开发环境为keil 5.13 + STM32F4xx_DFP 2.10.0 st-linkV2。
开工之前仔细读了Nucleo H743ZI的相关文档以及正点原子的相关教程,根据教程配置了开发环境:keil5.23 + Keil.STM32H7xx_DFP.2.1.0.pack。于是准备开工,未曾想得就遭遇困难重重。
进入keil523,编译连接一切正常,下载固件,系统毫不犹豫的开始报错“Internal command error”,进入到设置-Debug里始终是显示ST-LINK(too recent)。同时无法显示stlink的版本号以及SW device信息。
但同时使用st官方的 STM32 ST-LINK Utility 可以连接目标板及进行其他操作,这至少说明了开发板上的stinkV3 功能是正常的。网上一搜,这个问题还挺普遍。不光是Nucleo开发版存在问题,用户自己设计的板子也有问题。甚至同一个板子设计,用了不同出厂时间的mcu,一块正常另一块不正常。
通过多方查找资料,得知Stm32H743芯片有两个版本,在芯片上以V,Y标注区分,V应当是较新,我手头的这个版本。可能由于正点原子教程写作较早,其推荐的开发环境配置对于V版本无效。
解决方法,配置开发环境为以下:
keil5.29 + Keil.STM32H7xx_DFP.2.4.0.pack
要注意的是,如果keil版本不对,那么烧录时就会报Commend not supporeed错误,同时无法找到stlinkV3。Keil5.29安装后运行后进行烧录相关配置(Cortex-M Target Driver setup)时,系统会提示Stlink upgrade,照做即可。
如果pack版本不对,那么虽然烧录可以开始,但在其过程中会报出一大堆错误。
就这,坑还没完。如果是和我一样从前面趟坑而来而不是全新安装,那么在在烧录快结束还会报错。那是因为2.4之前的pack中flash烧录算法有问题。需要把原有的算法删掉,重新设置新的算法(名称相同,都是STM32F7X_2048)。
上面三个大坑填上之后,Nucleo H743ZI 开发板就烧录仿真一切正常了!