发布时间:2022-08-19 12:51
st-link下载STM32程序出现Internal command error和Error:Flash download failed. Target DLL
方法1:首先检查SWIO,SCLK,GND,VCC,RST这五根线是否都接了,有些情况把RST接上就好了,还有我是用的国信长天G431开发板,VCC应该接在开发板的5V引脚,另一边接在stlink的3.3v引脚,当时接的5v,stlink上的灯就熄灭了,改为3.3v这次的问题就解决了。
剩下的方法是在网上看到的解决他人的问题的方法
方法2:按住开发板RST引脚,电机IDE下载图标,松手,完成下载,下次就不会出现Error了。
方法3:将Keil中Debug->Setting->Reset 由normal改为pre-reset;
st-link下载STM32程序出现Flash download faild -m3
方法:查看是不是芯片信号选错了,比如用的是C8T6,但KEIL中选择的是ZET6,这样Debug-Setting中选择的就是high-density高容量,就烧录错误,改为C8T6,C/C++那里定义STM32F10X_MD,而不是HD,
Med-density中等容量而不是高容量。
1.编译使用CubeMX生成的代码时报错
Error: L6218E: Undefined symbol HAL_PWREx_DisableUCPDDeadBattery (referred from stm32g4xx_hal_msp.o).
解决方法:将HAL_PWREx_DisableUCPDDeadBattery改为HAL_PWREx_DisableUSBDeadBatteryPD
2.main.c中有个变量另一个X.c文件也想访问,变量的定义问题:
1.在main.h头文件中声明一个变量 extern uint8_t str[21];(不是定义,而是声明)
2.main.c及X.c文件都Include "main.c"
3.随便一个函数中定义这个变量:uint8_t str[21]="123"(这样的才是定义)
4.这样就都可以访问了,直接在h文件中定义会提示在两个c文件中重复定义。
3.使用ADC测量电压值时,使用的全局变量来接收,uint8_t Voltage 回调函数中使用uint32_t temp=HAL_ADC_GetValue(hadc1);导致Voltage值太小了,一步步排查最后发现时变量为8位的装不下!!!--2022.03.29备赛蓝桥嵌入式