stm8环境搭建及编译第一个工程

准备:

开发软件:IAR for stm8 

固件库:STSW_STM8069_STM8S和STM8A标准外设固件库

实验步骤

1.下载IAR for stm8 ,当进入到IAR官网时(点击上方IAR for stm8链接),显示界面大概如下:

把网页拖到最下面看到下图,点击 download a free trial 将会拉出一个下载按键,这个显示的IAR版本是最新的。本人目前看到的版本为3.10。

下载完成后,根据以往的方式进行安装,然后通过IAR破解工具将其破解。破解目前网上很多随便下载。当然本人自己也提供了下载链接 https://download.csdn.net/download/fangjiaze444/10944375 。

2.下载固件库,链接已经在上面已经超链接了。将STSW_STM8069_STM8S和STM8A标准外设固件库下载下来后。就可以开始我们的工程了。

打开IAR for stm8,新建一个工作空间,点击file菜单,再点击new workspace,然后再保存该工作空间指定到你要开发的工程目录中。比如我们在F:\STM8_test目录下保存该工作空间,因此电机file菜单,再点击save workspace as。。指定到该目录。

填写文件名为helloworld,点击保存。这样就生成下面的工作空间。

接下来就在该空间目录下创建工程,点击Project菜单,再点击create new project,得到如下图:

在project templates里面选择 c 选项然后再点击ok,同样得到如下图,名字也可以写成helloworld,当然你要想写别的名字都行。填好名字直接保存到该工作空间即可。

此时该工程的结构如下:

可以看看该工程目录大致的样式如下:

这个时候就可以添加固件库了。如果为了整个工程相对干净整洁,可以模仿我的目录结构。

首先,从上文已经拿到了stm8开发库,库目录结构如下:

我们直接进入libraries,再进入STMS_StdPeriph_Driver,得到如下结构:

inc目录内包含库的所有外设驱动函数的头文件,src目录内包含对应的c原文件。我们把这两目录的父目录复制到我们的工程目录中,得到工程结构如下:

然后我们还需要工程相关的配置头文件及c文件,退后到固件库的主目录,然后进入到project

example是api使用的例程,可以作为参考,而我们需要的文件在Template里面,进入它。把里面的main.c,stm8s_conf.h,stm8s_it.c和stm8s_it.h复制出来到我们的工程,我们的工程可以新建一个USER目录,再粘贴进去,得到如下:

由于USER是在固件库拿来的main主程序文件,因此我们需要把工程下默认生成的main.c文件去掉,之后再导入文件工程时替换掉原来的main.c文件,去掉工程目录的main.c之后,工程结构如下:

之后就需要在IAR上导入文件工程了,首先先把默认的main.c文件remore掉,右键该文件即可删除。

之后再添加组,这里我们添加了LIB和USER两个组。

得到结果如下:

之后再右键LIB组,添加我们的库的API的C文件。右键LIB,如下:

选择到如下 工程目录\STM8S_StdPeriph_Driver\src,添加里面所有的c文件。点击ctrl+A快捷键即可全部添加

点击打开即可得到如下:

再右键USER组添加目录USER下的所有文件:

之后工程组结构如下:

接下来就进入到配置环节,虽然我们把必要的文件加进来了,但是由于这些驱动文件能够通用各个stm8的任何系列的芯片,因此少不了option配置。废话少说,直接右键工程进入options

我们选择一些芯片的系列。假如我选择stm8s003f3,得到如下:

之后,进入c/c++ Compiler,然后点击Preprocessor选项,得到如下:

在additional include directories下添加我们需要编译的头文件的目录,只要是需要的头文件,他的路径必须加进来,否则编译会找不到对应头文件。添加结果如下,因为目前就只有这两目录有头文件。

当然为了方便移植,我们通过环境变量来录入我们的头文件路径。下面是如何操作修改成环境变量的。

得到结果如下:

接下来直接编译该工程了,发现报了很多错,该错误告诉我们,我们还需要选择一个目标。

跟踪这个错误,点击该错误看它。

说明我们需要添加一个宏,既然我选择了STM8S003f3,所以根据它列出来的选项,我选择了SMT8S003,因此在main主程序上可以添加 #define STM8S003 这一行,当然IAR本身就已经自带options里配置添加宏的栏框,故我们直接在options上添加,如下图:

点击ok再编译,此时可能会弹出各种未定义:

原因很简单,由于stm8s003的外设资源比较少,故该sdk就会通过我们刚刚添加的宏来屏蔽一些外设,这将导致一些外设c文件将编译不通过,因此,我们只需要把没编译通过的外设从工程中移除就ok了,下图可以看到有些文件后边多了个红点。

说明这些多了个红点是刚刚未编译通过的文件。把这些文件移除掉,一样右键要移除的文件,点击remove即可。移除之后剩下的结构如下:

看样子文件比刚刚少了一些,然后再编译该工程,得到如下图:

此时,上图编译日志显示的是0错误0警告。说明工程已经建立完成了。有什么异议希望能在评论下指点我错误的做法。

当要烧录时,也需要对options做配置,可以参考:

IAR for stm8通过ST-link烧录配置操作

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值