芒果爱吃胡萝卜 - 容量
type: channel
link: http://blog.mangolovecarrot.net/tag/%E5%AE%B9%E9%87%8F/
items: STM32烧录时出现Flash download failed-Cortex-M3，原因及解决

STM32烧录时出现Flash download failed-Cortex-M3，原因及解决
type: item
date: 2020-12-05T01:15:00+08:00
description: 环境IDE：Keil5 for ARM芯片：STM32F103C8T6原因多是由于使用的工程里面的芯片型号相关设置跟实际芯片不符。解决：检查并修改以下几个设置。需要检查并正确设置以下几个设置。Option for Target - Device这个没什么好说的，改成自己芯片的型号即可。Option for Target - C/C++ - 预编译宏定义本设置只有在使用了标准库函数开发时才需要，寄存器方式开发方式下不需要。这个设置会影响库函数的选择性编译，所以需要正确设置。（下图被选中的文字部分）这个设置跟Flash的容量有关，不清楚自己芯片flash大小的要去查一下数据手册（文末有官方下载地址）。flash大小跟宏定义的关系列表如下：宏MCU型号FLASH大小STM32F10X_LDSTM32F101xxSTM32F102xxSTM32F103xx16 ~ 32 KbytesSTM32F10X_MDSTM32F101xxSTM32F102xxSTM32F103xx常见的比如STM32F103C8T6(64K)STM32F103CBT6(128K)64 ~ 128 KbytesSTM32F10X_HDSTM32F101xxSTM32F103xx常见的比如STM32F103RCT6(256K)STM32F103ZET6(512K)256 ~ 512 KbytesSTM32F10X_CLSTM32F105xxSTM32F107xx忽略**其实主要看型号里面红色的这一位就知道flash大小了。STM32F10xXXXX**XFLASH大小864KB128KC256KD384KE512KOption for Target - Utilities最后还需要修改这里。点 Settings 打开 Cortex-M Target Driver Setup - Flash Download在你修改Device以后，这里的设置并不会自动改成正确的。需要你删掉原来的设置然后添加正确的设置。上面3点修改完成后，重编译下载即可。附录：STM32F10X系列官方数据手册下载地址小容量STM32F101xx： http://www.st.com/stonline/products/literature/ds/15058.pdf中容量STM32F101xx： http://www.st.com/stonline/products/literature/ds/13586.pdf大容量STM32F101xx： http://www.st.com/stonline/products/literature/ds/14610.pdf小容量STM32F102xx： http://www.st.com/stonline/products/literature/ds/15057.pdf中容量STM32F102xx： http://www.st.com/stonline/products/literature/ds/15056.pdf小容量STM32F103xx： http://www.st.com/stonline/products/literature/ds/15060.pdf中容量STM32F103xx： http://www.st.com/stonline/products/literature/ds/13587.pdf大容量STM32F103xx： http://www.st.com/stonline/products/literature/ds/14611.pdf互联型STM32F105xx/STM32F107xx： http://www.st.com/stonline/products/literature/ds/15274.pdf