STM8S IAR 建立工程 串口下载
图2 选择新建工程类型
3、进入工程文件的保存设置,首先在你要保存工程的路径下新建zSTM8SDEMO文件夹(例如:E:\临时文档\zSTM8SDEMO),然后在zSTM8SDEMO文件夹下依次新建APP、BSP、CFG、Libraries以及Project共五个文件夹,见图3。这里解释一下各个文件夹的作用:
APP:存放用户应用程序;
BSP:存放板级支持包;
CFG:存放工程配置文件;
Libraries:存放工程里使用到的开源或官方库文件;
Project
:存放工程及工程编译连接输出文件。
图3 工程文件夹下的五个文件夹
将工程命名为zSTM8SDEMO保存在Project文件夹下(zSTM8S开发板演示程序的英文缩写,您也可以自己重新定义命名),依图4所示。
STM8S IAR 建立工程 串口下载
图4 将工程命名为zSTM8SDEMO并保存
4、这样,我们就完成了工程的建立,完成上面的工作后,下面就是官方库的移植了,首先复制官方标准外设库路径下的Libraries文件夹下的STM8S_StdPeriph_Driver文件夹到工程文件夹zSTM8SDEMO下的Libraries文件夹下,如下图6所示。
图6 复制外设库驱动
然后复制官方标准外设库路径下Project 文件夹下的STM8S_StdPeriph_Template文件夹中的main.c、stm8s_conf.h、stm8s_it.c和stm8s_it.h共四个文件到工程文件夹下的APP文件夹下,如下图7所示:
STM8S IAR 建立工程 串口下载
图7 复制主文件,中断向量文件及初始化配置文集
至此,我们就完成了官方库的移植。
6、下面回到IAR来,开始添加组别及相应文件到工程目录中。
右键单击工程,选择Add Add Group选项,如图所示,依次添加APP、BSP、CFG及Libraries四个组别,然后再在Libraries组别下面添加STM8S_StdPeriph_Driver组别,具体操作见下图。
图8 向工程中添加一个新的组别
STM8S IAR 建立工程 串口下载
图8 添加的所有组别
完成组别的添加后,开始添加文件,首先右键单击APP组别,选择Add Add Group选项,给APP组别添加工程文件夹zSTM8SDEMO下
APP文件夹里的main.c、stm8s_conf.h、stm8s_it.c和stm8s_it.h四个文件。
图9 向工程组别里添加源文件
同理然后给Libraries组别下面的STM8S_StdPeriph_Driver组别添加工程文件夹zSTM8SDEMO下Libraries文件夹中STM8S_StdPeriph_Driver文件夹里面src文件夹的所有文件,保存工程,完成后截图如图10所示。
STM8S IAR 建立工程 串口下载
图10 添加所有源文件后的截图
7、完成上面的工作后,开始工程的进一步配置和编译了,下面开始配置工程属性,右键单击工程,选择Options 选项,进行一下几项的配置。
图11 进入工程选项配置界面
首先,依图6,在Genera Options 选项中,配置芯片型号为STM8S105C6。
STM8S IAR 建立工程 串口下载
图12 选择配置主芯片型号
然后,依图7,在C/C++ Compiler选项中,选择Preprocessor项目,在Additional include directories栏目的编辑框内输入下面的头文件包含路径: $PROJ_DIR$\..
$PROJ_DIR$\..\Libraries\STM8S_StdPeriph_Driver\inc
$PROJ_DIR$\..\App
$PROJ_DIR$\..\BSP
$PROJ_DIR$\..\Cfg
并且在在Defined symbols栏目的编辑框内输入STM8S105(这里是为了告诉编译器在编译官方标准外设库时我使用的是STM8S105系列)。
STM8S IAR 建立工程 串口下载
图13 工程编译包含路径设置及定义芯片系列
最后,在Output Converter 选项中,选择Generate additional output ,格式为Intel extended。
图14 配置生成hex文件用于Flash Loader Demonstrator下载
STM8S IAR 建立工程 串口下载
8、下面开始编译工程。
打开main.c文件,开始编译,选择工具栏上的图标的第一个编译当前文件,第二个编译整个工程。首先单击第一个图标,出现保存当前Workspace的对话框,将当前Workspace命名为zSTM8SDEMO保存在工程文件夹zSTM8SDEMO的Project文件夹下。
图15保存当前工作空间
再次单击第一个图标编译main.c文件,这时Messages
对话框里显示
。然后在单击第二个图标,编译整个工程,此时
Messages对话框里显示。
亲,不要着急,这是因为ST官方提供的标准外设库包含了整个STM8S系类里所有单片机所包含的所有外设,而我们开发板使用的STM8S105C6T6仅仅包含了若干外设,所以此时我们要将外设库里有些没有用的外设文件设置为不参与编译连接。
展开Libraries组别下的TM8S_StdPeriph_Driver组别,看到后面红色星号※的么,那些外设就是我们STM8S105系列所不具备的外设,依次屏蔽他们不参与编译连接即可,以ADC2模块为例,右键单击stm8s_adc2.c文件,选择Options 选项,在弹出的对话框中选择Exclude from build选项。