STM32F103C8编程与运行问题

问题描述

我遇到了 stm32f103c8 的意外问题。我正在对芯片进行编程,重置后,它开始运行程序,但几秒钟后,微控制器变得混乱并停止运行程序。之后,当我尝试重新编程微控制器时,IDE(IAR EWARM)会告诉“目标保持在复位状态”。
这是一个非常不寻常的问题,因为有时当我将 nRST 引脚直接连接到 VCC(3.3V)时,微控制器运行程序但不幸的是电流超过 120mA 并且芯片最终损坏。
我使用 STM32CubeMX 生成代码,我的程序员是 STLINK V2(clone),也尝试了 Jlink V8.0(clone) 但没有改变结果。
难道是因为克隆程序员?

谁能帮我解决这个问题?

谢谢

解决方法

切勿将 nRST 直接连接到 VDD/VCC。这是一个双向输入输出,只能连接到开漏/开集电极信号。它可以从外部或从内部被拉低,除了内部上拉电阻外,绝不能被拉高或驱动为高。

当您的调试器或程序员完成对闪存的编程并想要开始运行新程序时,它需要能够将这条线拉低,如果您将这条线连接到硬件中,它可能会在外部做到这一点,否则它必须能够使用内部复位脉冲发生器通过软件将其拉低。如果它这样做并且您在外部将线路连接到高电平,那么您实际上是在使电源短路,这就是您观察到的过流情况的原因。

也许最初的问题是你的假冒 ST-Link 的复位输出配置为推挽,而它应该是开漏的。

我建议最简单的方法是不连接 nRST 线并将您的编程工具配置为仅使用软件复位。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...