无意间锁死了STM32F042

最近做了个小玩意,用的芯片型号为stm32f042后面记不清了,QFN28封装的。

由于这个芯片引脚不多最后把swdclk (PA11)和 swdio(PA12)这两个作为按键输入,以及BOOT0引脚作为输出才刚好满足电路要求。、

由于BOOT0这个引脚悬空会引起程序不从User Flash启动,而stm32f042提供了option bytes可以通过编程里面的Boot_SEL nBoot0 nBoot1来决定启动位置,从而彻底解放boot0引脚。这里配Boot_SEL=0 nBoot0=1 nBoot1=0.

刚开始想的是调试的时候先调试其他功能,调试完了再盲调这两个按键功能。

到了调试按键功能的时候,程序中将PA11 PA12设置为输入,然后加入逻辑代码,跑起来发现有问题。修改程序之后再刷就刷不进去了,ST Link提示无法连接目标。

分析原因,应该是由于我在程序里面关闭了SWD导致ST Link连接不上单片机。这个时候补救的办法应该是启动的时候进入System Memory就是单片机自带的ISP,擦掉User Flash。但是由于我前一步为了解放Boot0而写了Option Byte,导致单片机在启动时直接进入User Flash而不是通过Boot0引脚电平和nBoot1位决定如何启动。现在我即使想重写Option Byte也已经来不及了,因为SWD连接不上。

你可能感兴趣的:(stm32,&,stm8)