STM32-下载代码uvision出现的错误汇总

​根据官方文档,STM32下载代码有三种方式:

由于SRAM为静态存储器,关机后不能保存代码,故多采用前两种方法(主Flash及系统存储器)下载代码。

一、主flash下载代码

即通过ST-LINK下载,步骤如下

  1. 将ST-LINK V2如下引脚连接至主芯片对应SW下载引脚

   2. 配置uvision界面,依次点击魔术棒—debug—选中ST-LINK Debugger—settings

!!!注意:接下来SWDIO这里可能会出现各种问题

  • 出现“NO ST-LINK detected”,表明电脑未检测到ST-LINK设备,请确认设备USB连接线可以正常使用且ST-LINK驱动已正常安装(在设备管理器的通用串行总线设备处查看,正常如下图所示),如果正常,建议更换ST-LINK设备进行尝试。

  • 出现“No Target Connected”,表示设备连接有问题,建议先检查杜邦线连接是否松动(杜邦线连接很容易不稳定!!!),确认无误后,请考虑是否硬件设计是否存在问题。

  • 出现“Internal command error”,我遇到的问题是,BOOT未下拉至GND。在SW调试下载模式下,BOOT0必须要下拉至GND,手边有万用表最好测一下BOOT0引脚电压是否正常。网上也有很多关于该问题的解决方法,可以动手搜一下。总结一下主要方法,更新STLINK固件、检查先前代码是否有启用睡眠模式、手动拉低RESET。
  • 正常情况是这样滴

  1. 结束了?并没有!!!
  2. 编译完代码,点击load又有可能出现“Could not stop cortex-m device! Please check the JTAG cable NRST”的弹窗。。。惊不惊喜?意不意外?(王宝强脸。。。)这个时候请检测NRST电压是否正常,我的板子检测出NRST引脚输出是1.2V,一直无法下载。去掉外部电阻电容还是1.2,而另一个板子输出正常,原来是芯片这个引脚坏了,手动上拉到VCC可以下载代码了,然而下载完成后,单片机并没有输出理想的结果。
  3. 至此,本菜鸟的第一次下载代码告一段落。

二、系统存储器下载代码

@@声明:本部分参考正点原子开发板教程

硬件电路

实现步骤:

  1. BOOT0连接到VCC,BOOT1连接至GND
  2. 按复位键(NRST下拉到地)
  3. 下载代码
  4. 完成后BOOT0连接至GND
  5. 按复位键(NRST下拉到地)

正点原子也给出了另一种比较方便的设计,专门设计了一键下载电路,通过串口的 DTR 和 RTS 信号,来自动配置BOOT0 和 RST 信号 ,因此不需要用户来手动切换他们的状态,直接串口下载软件自动控制。配合flymcu使用。具体方法网上很多,建议动手多搜搜。这里给出一键下载的原理图,仅供参考。

以上就是本菜鸟这次下载代码遇到的问题,分享出来供大家参考,如有不正确的地方,还请各位大佬多多指正。

版权声明:本文为CSDN博主「YM_纸飞机」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Rema_Tain/article/details/122843034

生成海报
点赞 0

YM_纸飞机

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

RT-Thread Studio移植LAN8720A驱动

RTT网络协议栈驱动移植(霸天虎) 1、新建工程 ​ 工程路径不含中文路径名,工程名用纯英文不含任何符号。 2、用CubeMx配置板子外设 2.1、配置时钟 ​ 按照自己板子配置相应时钟。

【STM32Cube笔记】12-配置外部中断

【STM32Cube笔记】系列文章目录 1-基于STM32的VSCode入门级教程前言 2-STM32Cube安装教程 3-STM32CubeIDE汉化 4-STM32Cube配置时钟设置 5-跑马灯引脚配置 6-Cortex-M7内核基本配

stm32cubemx+HAL+串口接收中断

stm32cubemxHAL串口接收中断 在cubemx配置完串口和global interrupt后需要在keil中添加如下代码。 第一步:在main函数中添加接收中断标志位开启函数 HAL_UART_Receive_IT