关于STM32F030的ISP下载问题

   第一次在CSDN写博客,从事嵌入式开发工作的三年时间来也经常在CSDN上浏览各类技术博文,这些优秀的文章很大程度的提升了我的个人能力或者有效的解决了工作的遇到的各类问题,所以在此要向所有无私奉献的CSDN博主们表示诚挚的谢意。现在我也将踏着前人的脚步,本着传递知识相互学习的目的开通了自己的博客。希望在这个自由开放的网络平台上与大家一起学习提高。

    说实话第一篇博文我并不知道怎么写也不知道该写些什么内容,前后思考了一段时间我认为还是先从工作学习中遇到的一些小问题开始吧,这类问题并不是什么高深复杂的技术问题,而是一些易错的细节问题,本文就将简单聊聊在工作中遇到的STM32F030系列微控制器无法进行ISP下载的问题。

    区别于SWD调试下载功能,ISP下载是指在微控制器启动时启动一段厂商定义的启动代码段,该代码段可以用来对片内FLASH进行读写。所以利用此功能我们可以快捷的更新片内程序。ISP代码的性质就像嵌入式linux系统常用于引导启动系统的UBOOT,只是相对于UBOOT,MCU中的bootloader更加简化而已。对于ISP功能常用的通讯端口为串行接口,即通过串口就可快速的更新片内程序。

    那么本文中对于STM32F030系列微控制器的ISP下载为何会失败呢?其实说到底还是没有认真的阅读ST官方的用户指南。首先我们看一看在启用串口ISP下载程序是需要具备哪些条件。

(1)正确的启动模式

关于STM32F030的ISP下载问题_第1张图片

上图可以看到,我们希望微控制器启用ISP下载功能,应当使BOOT1位为0,BOOT0位为1,关于BOOT1引脚其实是在OptionByte中进行设置的,并没有相应的物理引脚。而对于BOOT0其外部引脚此时应当接VCC电平。这样我们就满足的ISP的启动条件。

(2)正确的启动端口

关于STM32F030的ISP下载问题_第2张图片

    从应用笔记AN2606中我们可以看到,STM32F030系列进行ISP下载时默认的启动端口是PA10和PA9,而STM32微控制器有许多引脚的功能是复用的,所以在使用串口引脚时博主其实是使用了错误的引脚PA2和PA3,在ISP程序启动的过程中并不会将串口的TX、RX功能映射到这两个引脚。默认的启动过程中映射的是PA9和PA10引脚。最后在切换回正确的引脚后ISP功能终于使用正常。

最后就是使用FlashLoader软件下载程序了。

关于STM32F030的ISP下载问题_第3张图片



你可能感兴趣的:(细节反思与分享)