STVD+STM8官方固件库创建工程模板

STVD+STM8官方固件库创建工程模板

本文借鉴了在KEIL、IAR、以及一些IDE创建工程模板的经验尝试得出。如有偏驳,欢迎将Email给我,我将及时修改,如有版权问题,请管理及时联系我删帖,维护版权。

  • 1、安装STVD(IDE)+ COSMIC(编译器),本文省略
    需注意,需要留意COSMIC的安装路径,以免系统无法自动识别时,可手动配置。

  • 2、下载STM8S的固件库
    可于意法半导体官网下载STM8S的固件库,也可位于STM论坛(百度可以搜到),个人建议去STM论坛,本文用的是STM8S_StdPeriph_Lib_V2.1.0,下载完后解压备用。

  • 3、新建存放模板的路径(文件夹)并将固件库放进相对指定文件夹
    a、需要新建存放文件的路径的文件夹。例如,整个工程模板存放在(Dir)\Demo[注:(Dir)表示你想要存放的的任意文件夹]。然后再Demo文件夹新建三个文件夹分别命名为cosmic、libraries、source,名称原则随意只要自己开心,但不要有一些不符合命名规则的。因此,当前文件夹组成如下:
    这里写图片描述
    b、将下载的固件文件夹STM8S_StdPeriph_Lib_V2.1.0\ Libraries\ STM8S_StdPeriph_Driver下的inc、src复制到libraries下,粘贴完成后路径构成如下:
    STVD+STM8官方固件库创建工程模板_第1张图片
    c、将固件库中STM8S_StdPeriph_Lib_V2.1.0\Project\STM8S_StdPeriph_Template下的main.c、stm8s_conf.h、stm8s_it.c、stm8s_it.h复制粘贴到自己所建模板文件路径的source下,目前路径构成如下:
    STVD+STM8官方固件库创建工程模板_第2张图片

  • 4、启动STVD(全称ST Visual Develop)
    a、开始>所有程序>ST Toolset>Development Tools>ST Visual Develop,启动后界面如下:
    STVD+STM8官方固件库创建工程模板_第3张图片
    b、选择File>NewWorkspace,选择如图所示选项即可。
    STVD+STM8官方固件库创建工程模板_第4张图片
    c、在Workspace Name填谢你需要的模板工作空间的名字,并在Workspace location选择你的模板所在路径的cosmic文件夹,图中的路径是一个非法的,只是用一个变量表示在Demo所在上一级前路径不管是否一致,但从Demo文件夹开始你要跟上节奏。
    STVD+STM8官方固件库创建工程模板_第5张图片
    d、填写工程名,并选择编译器,如果选择了STM8 Cosmic下边的Toolchain root没识别出来,九点旁边的三个点,手动选到所在文件夹。
    STVD+STM8官方固件库创建工程模板_第6张图片
    e、选择器件,这里选择自己的芯片型号,错了也没事,只是之后设置的再重选就行了,本人的是STM8S103(记住自己的芯片型号,之后有用)。完成后展开选项如图所示:
    STVD+STM8官方固件库创建工程模板_第7张图片
    f、点开main.c 按键F7编译一下后选择File>close Workspace,并保存修改【为了在模板路径cosmic下生成main.c以及中断向量表stm8_interrupt_vector.c,此时的中断向量表文件未填充各个中断类型,因此添加固件库编译后会提示错误,因为这个要被覆盖】。将模板cosmic路径下的main.c剪切(Ctrl+x)粘贴到模板路径source下。并将加压得到的固件库路径STM8S_StdPeriph_Lib_V2.1.0>Project>STM8S_StdPeriph_Template>STVD>Cosmic下stm8_interrupt_vector.c【已填充好中断向量表的文件】文件复制粘贴到自己的模板的cosmic下,并覆盖自己模板下的文件。
    g、在STVD中依次选择File>Recent Workspace>(Dir)\Demo\cosmic\Demo.stw[即是自己刚刚关闭的那个] ,因为改变了原生成main.c所以会提示错误,一直点是,然后再在STVD的Source右键添加并选择文件main.c。我这里为了表示这是官方库,就删除了Include Files新建了用固件库的名字命名的选项,并且在其下边又建了一个src的选项,这一步可以不用。如图所示:
    STVD+STM8官方固件库创建工程模板_第8张图片

  • 5、配置STVD
    a、选择Tool>Options,打开后选择Directories,并逐项添加,模板所在路径,如果之后你还有自己额外的代码,类似的也要添加,不然会一直提示找不到找不到,然后错错错,Demo前的路径各有差异,如下界面:
    STVD+STM8官方固件库创建工程模板_第9张图片

b、假设你不知道,在官方未修改的固件库里stm8s.h器件选型是被注释的,而你未取消注释,为了接下来编译不出提示错误#error cpstm8 G:\STM8S\stvp\Demo\Lib\inc\stm8s.h:65 “Please select first the target STM8S/A device used in your application (in stm8s.h file)”
依次选择Project>Setting打开后,选择C compiler下的Preprocessor Definitions填上自己的芯片型号,例如我的是STM8S103【注意字母大写】,这样即使你没有在stm8s.h里去掉注释也能编译通过。完成后双击main.c,填上预处理头文件命令【如图】后,按下F7编译。编译完成后展开External Dependencies,将看见图上的一些头文件,这些头文件就是你所选芯片支持的固件资源,没有的就是不支持的【详细的文件为stm8s_conf.h】你只要按照这里有的器件右键在IncludeFiles【我这里是STM8S_StdPeriph_Lib】里添加资源对应的.c文件,就不会编译错了,没必要将支持的资源对应的文件都添加,用什么加什么,节约编译的时间,提高开发效率。
STVD+STM8官方固件库创建工程模板_第10张图片

6、需注意事项
这是经过错误提示后将标准库文件从列表中修改后的结果。原因是并不是每款芯片都支持每个外设,例如STMS103F3并不支持adc2、tim5等等。解决方法有两种如下:
方法一[推荐]: 在提示有错的源文件上鼠标右键>Settings>Exclude file from build[意为构建工程时该文件不参与编译链接等,其他IDE也具有类似功能],也可选择将文件移出工程[不推荐移除,移除后改选类型,但想要使用原来的模板可能会有遗漏]。
方法二: 对照头文件stm8s_conf.h选择器件支持外设,在src下保留.c文件, 缺点是保不齐有遗漏的,将导致会报错。

你可能感兴趣的:(STM8自学)