最近在做一个项目,需要采用低功耗的MCU。为此从新做了电路板。 之前用的是STM32F103RCT, 所以需要移植一下。由于STM32F103RCT和STM32L151RCT 的管脚基本是兼容的,因此硬件上与之前的改动并不大。 软件上按照“AN3422 APPLICATION NOTE "所列出的一步一步改动,基本顺利1。有两套工程,一个是STM32F103, 一个是STM32L151. 编译后对STM32L151进行烧录,使用的是MCUISP
v0.993, 发现烧录一遍后,芯片并不工作, 再次烧录时显示”芯片已读保护,写入出错在0KB,进度0%,耗时343毫秒“, 无法烧录了。 如果将”校验“取消勾选,发现可以写入,但reset后还是不执行。
然后我尝试在开发板上用J-LINK 和SW来调试STM32L151一下,报错:
* JLink Info: Could not measure total IR len. TDO is constant high.
* JLink Info: STM32 (connect): Can not attach to CPU. Trying connect under reset.
* JLink Info: Could not measure total IR len. TDO is constant high.
Error: Flash Download failed - Target DLL has been cancelled
Flash Load finished at 10:31:28
我的理解是J-Link和SW 都无法识别出芯片。PA13 PA14都没有用到,所以不存在因GPIO 口的复用而占用了SW 调试口。 在开发板上用J-LINK 和SW 来调试STM32F103 都是正常的。J-LINK 的调试器是工作的。 上网
google. Segger 的技术支持对类似问题的建议是update J-LINK 的版本。 我从Segger下载了 v6.61, 安装后还是显示“Could NOT MEASURE TOTAL IR len, TDO is constant high". 同时segger 6.61 还识别出J-LINK 硬件是DEFECTIVE. 会自动关闭MDK 开发环境。 谨慎!!! update
说到这里,问题还是没有解决。 网上有人说J-LINK 的旧版本支持STM32L1XX ,但不知道是什么版本。请问有大侠遇到同样问题并解决的吗? |