一、序言:1.1 说明
本文逐步介绍了作者自身在STM32处理器和IAR编译环境的学习过程,并介绍了在该类环境下容易产生错误的地方,最后顺利的进行Firmware下的程序编写和ST-LINK的调试。
说来惭愧,小小的编译环境竟然花费了我整整4天时间,本人也是跟随着网上的众多教程慢慢的摸索。可不想,编写教程的人貌似并没有遇到很多问题,而自己确因为人品的关系很是出错。现将熟悉过程记录之,供人品和我一样差的,甚至比我差的同胞使用。
以下,仅仅是作者自身的实践所得。如有出错,请谅解,并提出意见;如需要引用,还请注明来源,以此表示对我成果的肯定。谢谢。
1.2 选择STM32单片机/处理器
在公司完成一个项目之后,需要考虑新的芯片适应新的需求,以此,同主管商量之后,决定采用ST的8位或32位单片机。其价格、功能、用户群都是比较不错的。
介于自身对32位芯片的向往,于是义不容辞的直接上STM32单片机。公司正好有一块STM32的板子,于是决定从STM8开始。
1.3 熟悉STM32的编程手法
不同于以往的8位或16位单片机,STM32的编程大量使用Firmware,也就是固件,个人理解是:Firmware不需要或者很少修改之后,可以随意的调用,即可以实现相关功能。Firmware的设计结构预示着它具有很好的通用型,而且熟悉之后调用非常的简单。
最大的困难在于当初次接触Firmware时,可能有点晕,于是本人花费了整整4天时间初步搞定了如何使用Firmware,以及使用开发板进行下载调试。
1.4 平台选择
A、开发板、仿真器:使用的是STM8-PKT+ST-LINK;
B、开发环境:IAR Embedded Workbench for ARM, 32K Kick start Edition;
C、Firmware:STM10x_StdPeriph_Lib_V
首先安装IAR Embedded Workbench for ARM, 32K Kick start Edition;
下载STM10x_StdPeriph_Lib_V;
(所有的资源都可以到IAR和ST官网上下载,资源的获取也是很重要的,要是自己不培养找资源的功夫,就不是一个好的开发人员,这里就不留网址了)
二、准备工作2.1 了解IAR for ARM编译环境
和很多其他的编译环境一样,IAR for ARM也分为创建项目,添加文件,编译,连接,调试等相关流程。对IAR for ARM操作的重点在于对IAR环境的配置,将在后面详细介绍。(不像Keil编写51单片机一样,只需要配置out有hex输出既可)
2.2 了解Firmware-STM10x_StdPeriph_Lib_V
只有对Firmware有整体性的认识之后,你才能使用它,不至于很模糊。以此初学者一定要对Firmware有一个整体性的认识。
2.3 了解ST-LINK
这里的ST-LINK是正宗的ST公司设计的,不是ST-LINKII,更不是III;
IAR for ARM中已经提供了对ST-LINK的支持,以此很容易就可以使用ST-LINK进行配置。
三、开始工作
和很多教程一样,使用项目知道的方法,在实际的操作中来加深对该环境下的操作方法。
环境为:
STM8-PKT+ST-LINK
IAR Embedded Workbench for ARM, 32K Kick start Edition
STM10x_StdPeriph_Lib_V
3.1 创建文件目录
创建一个文件夹20101223,在下面在创建一个EWARM文件夹:
20101223文件夹是你的整个项目的文件夹;
EWARM文件夹是项目中的放置工程文件夹;
3.2 创建一个工程目录
创建一个Workspace,一个Project,添加Add Group:
最后IAR for ARM中的结构如下:
其中
CMSIS:Cortex Microcontroller Software interface standard
StdPeriph_Driver:Standard Peripheral Driver
这是你的代码结构,主要是模仿Firmware中的Template,应该是最清晰的结构了。
文件组织结构如下:
只要按照以上的建立方式,既可以进入下一阶段。
3.3 添加Firmware相关文件
该过程主要是Copy和Add两个过程。
CopyA、Copy Firmware下的整个Libraries文件夹到20101223文件夹下
B、 Copy Firmware中的
main.c、
stm10x_conf.h、
stm10x_it.c、
stm10x_it.h 、
system_stm10x.c
如图:
到20101223文件夹下,如图: