1.首先了解一下STM32F0的串口下载(BOOT)功能
STM32F0 通过BOOT0引脚和选项字节中的nBOOT1位来选择复位地址,如下图:
当BOOT0引脚接地时无论nBOOT1位的值是什么都会从主Flash开始执行程序
当BOOT0引脚接高,如果nBOOT1配置为1,则从SRAM开始执行程序
如果nBOOT1配置为0,则运行系统BOOT程序,此时可以从USART口下载(烧写)Flash程序。
由于nBOOT1位出厂默认值是1,所以无论BOOT0引脚接高还是接地都不会执行系统BOOT,所以我们可以认为,全新的STM32F0芯片是无法直接通过USART下载程序的,这一点是与stm32f1是有区别的。
2.SWD接口连接
既然BOOT无法为芯片第一次烧录程序,那么SWD是STM32F0芯片唯一的烧录方式了(因为此芯片也不支持JTAG)。
ST-Link/V2 SWD连接目标器件的连接图如下:
有几个注意事项:
(1)据网上资料显示NRTS可以不接,但我没有试过;为了可能的兼容性我的转接板保留了这个信号;
(2)VDD与STLink的1脚是需要连接的,否则找不到器件,ST-LINK会认为目标器件没有上电,为了保险起见我串了一个电阻,这个电阻是否必要有待考证,但经测试加上是没有什么问题的。
(3)目标器件的BOOT0脚要拉低,否则是连接不上的,原因不祥,但想想也是合理的,因为调试时是在FLASH内执行的。
3.工具软件
(1)在Keil MDK开发环境下可以直接使用SWD调试,在项目设置对话框中选择ST-Link并调试选择SW模式即可;
(2)如果仅用于下载程序可以使用STM32 ST-LINK Utility这个工具,此工具可从ST官网上免费下载,软件包名称是STST-LINK004
直接在ST官网搜索STM32 ST-LINK Utility即可找到这个软件包。此工具还可以升级ST-Link/V2的固件,调试M0时应将ST-Link/V2的
固件升级至最新。
|
|