问题编程和运行STM32F103C8

Posted

技术标签:

【中文标题】问题编程和运行STM32F103C8【英文标题】:Problem programming and running STM32F103C8 【发布时间】:2021-07-10 14:29:36 【问题描述】:

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

谁能帮我解决这个问题?

谢谢

【问题讨论】:

【参考方案1】:

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

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

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

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

【讨论】:

以上是关于问题编程和运行STM32F103C8的主要内容,如果未能解决你的问题,请参考以下文章

stm32f103c8 跳转到应用程序不起作用

stm32F103RCT6概括

如何在 STM32F103C8T6 上进行裸机 LED 闪烁?

STM32F103C8T6基于Arduino框架下利用定时器跑RBG灯闪烁

在STM32F103C8T6上使用UCOSII一些小心得。

STM32F103C8T6在Arduino框架下驱动SH1106 1.3“ IIC OLED显示