由于学科上需要,及个人兴趣,日前,入手了一块STM32的开发板,准备开始学习STM32。先前一直在学的只有51单片机,开始对STM32了解后发现,STM32与51单片机的区别相当大,性能也要好的多。而自己无法一下子从51单片机转变过来适应STM32,因此决定将自己的学习过程整理成笔记,方便日后查询回顾,也希望能得到其他对STM32感兴趣的同学的指教,让自己尽快入门。
一.学前软硬件准备
1.个人知识基础:
模/数电知识
51单片机应用经验
2.硬件:
STM32开发板1块(主芯片为STM32F103VBT6,市面上各种开发板的外设电路也大同小异)。
J-link V8仿真器1个。
其他各种USB线,串口线等。
3.软件:
开发环境:IAR Systems V4.0
程序烧写驱动:J-Flash ARM V4.08l
其他诸如“串口调试小助手”等小工具
4.书籍:
《STM32F103数据手册》(中/英文电子版)
《STM32F10x参考手册》(中/英文电子版)
《STM32固件库使用手册》(中/英文电子版)
《STM32菜鸟学习手册-罗嗦版》(电子版)
《STM32不完全手册》(电子版)
其他
二.IAR开发环境设置
新建工作区


新建项目


设置项目属性

一般项:

C/C++Compiler项:

编译器优化项(若使用仿真则最好设置为none):

连接器(若仿真应勾选C-SPY):


Config项(若使用RAM仿真应选择lnkarm_ram.xcl):




配置完毕,为项目添加组和文件:


完成程序后,对工程进行编译,就会生成bin文件:


下面是进行仿真时需要更改的设置:
C/C++compiler项(优化项):


Linker项:


Debugger项:


J-link项:


设置完毕,编译完后即可以进行仿真



三.使用J-Flash ARMV4.08l对芯片进行程序烧写:
在烧写程序前,需要对开发板上的Boot0和Boot1脚进行配置,配置模式如下:
BOOT1=x BOOT0=0从用户闪存启动,这是正常的工作模式。
BOOT1=0 BOOT0=1从系统存储器启动,这种模式启动的程序功能由厂家设置。
BOOT1=1 BOOT0=1从内置SRAM启动,这种模式可以用于调试。
这里我们使用闪存模式,即Boot1=0,Boot0=0;
烧写程序流程:
1.打开编译好的bin或hex文件:

注意设置起始地址为8000000:

选择Target>Program进行程序下载:

确定清除原存储内容:


程序下载完毕:

此时对开发板进行断电重启即可运行新的程序了。
基本准备至此,更多关于IAR的仿真应用,以及J-link介绍还需要多看文献了解!
四.参考文献
[1]宋宝森. IAR使用教程[M/CD].www.nce-tech.com.2012-08-21
[2]iceworld.stm32的boot0和boot1[EB/OL].http://bbs.ednchina.com/BLOG_ARTICLE_2133137.HTM,2011-09-09/2012-08-21.
[3]sw笨笨.sw笨笨的STM32学前班教程之五:给等待入门的人一点点建议[EB/OL].http://user.qzone.qq.com/12180295/infocenter#!app=2&via=QZ.HashRefresh&pos=1233325224,2009-01-30/2012-08-21