ARM:使用 stm32l0 nucleo 在几秒钟后自动擦除闪存

Posted

技术标签:

【中文标题】ARM:使用 stm32l0 nucleo 在几秒钟后自动擦除闪存【英文标题】:ARM: flash memory gets erased after a few seconds automatically using stm32l0 nucleo 【发布时间】:2016-04-03 06:17:10 【问题描述】:

将程序刷入nucleo板后遇到一个大问题,这里我使用的是stm32l053r8t6 nucleo板(编译器:keil MDK v5.0)。

        problem: after loading any program(eg:blink problem) from keil into controller 

板子,几秒钟后板子的连接丢失(注意:usb没有拔掉)同时闪存程序也丢失了,所以我必须从头开始编程

如果有人理解这个问题,请更新...

希望 keil 社区反应快..

【问题讨论】:

nucleo 板像 mbed 板一样工作,您只需将 .bin 文件复制到看似闪存驱动器的位置。然后调试控制器停止并对目标微控制器进行编程并重置它。当你尝试这样做时发生了什么? 程序不是只加载到内存吗? 【参考方案1】:

您是否安装了 ST-Link v2 驱动程序或实用程序?如果没有,请看这里:http://www.st.com/web/en/catalog/tools/PF258168

此实用程序用于使用 ST-Link v2 调试器/编程器(整个 Nucleo 系列)刷新 STM32 开发板。下载该实用程序,安装它,安装它还应该为您安装驱动程序。如果没有,您可以在这里获取它们:http://www.st.com/web/en/catalog/tools/FM147/SC1887/PF260219

如果在安装USB驱动后用Keil编程还是不行,找到Keil生成的编译好的二进制文件,使用该实用程序用该二进制文件烧写芯片。

【讨论】:

我已经尝试过使用 st-link v2 实用程序,同样的情况。我已经在我的系统中测试了两个类似的板,但是当我用另一个系统测试它的工作时,这个问题只发生在我的系统.. 系统是什么意思?您可以尝试的其他方法是部署一个您确定 有效的二进制文件。 mBed 支持您的电路板,因此您可以访问此处:developer.mbed.org/platforms/ST-Nucleo-L053R8 注册,并创建一个示例闪烁程序。然后,您应该能够将已编译的 .bin 文件拖放到您的板上。如果这不起作用,请按照此处的说明更新您的主板固件:developer.mbed.org/teams/ST/wiki/Nucleo-Firmware,然后重试 系统是我的电脑,我试试你的意见,我已经重新安装了最新的st链接工具.. 啊,我明白了。要验证驱动程序是否到位,请打开命令提示符,然后输入“driverquery”。然后,在列表的底部,您必须有一个名为“usbser”和一个名为“WinUSB”。此外,使用 st-link v2 进行编程时,如果可能,请使用 .hex 文件,而不是 bin。我遇到了将程序放入错误的内存位置的问题 你的升级想法成功了,现在我的blink程序正在运行,我也检查了驱动程序查询,它还显示文件名“usbser”和一个名为“WinUSB”的文件名...... ....但我仍然不明白什么是问题....你的想法对我很有帮助,谢谢朋友..@ Austin

以上是关于ARM:使用 stm32l0 nucleo 在几秒钟后自动擦除闪存的主要内容,如果未能解决你的问题,请参考以下文章

Stm32L0串口中断接收使用

Stm32L0 内部EEPROM使用

在 STM32L0 上进入低功耗模式以使用 USART1

STM32L0系列超低功耗MCU可替换产品

Stm32L0 STM32CUBE中UART和使用LPUART1以及串口不进中断问题解决

stm32L0工程建立(HAL+IAR,无cubemx)