IAR新建工程

下载库函数

本文介绍基于 IAR+官方标准固件库,来新建 STM8S003F
工程,STM8S 的标准固件库可以到 ST 的官方网站中找到并下载:ST官网
1.在搜索栏上搜索 STM8S003F ,点击工具与软件
工具与软件
2.在工具与软件栏中找到:STM8S/A标准外设库,点击下载(en.stsw-stm8069_v2.3.1.zip):
标准固件库下载
3.把下载的标准固件库解压并打开,可以看到里面有如下内容:
文件目录

建立工程模板

上图中的LibrariesProject文件夹中,有部分内容是新建工程所需要的,在建立工程之前,先选择一个路径,新建一个 Template 文件夹(作为以后新建工程的模板),并在文件夹中分别新建以下五个文件夹:

  • APP:用于存放用户程序,简单的应用这个文件夹一般空在那里;
  • Driver:用于存放工程文件;从STM8 标准固件库以下路径:..\STM8S_StdPeriph_Lib\Project\STM8S_StdPeriph_Template\,拷贝main.cstm8s_conf.hstm8s_it.cstm8s_it.h四个文件到我们建好的User文件夹。
  • Lib:用于存放STM8标准固件库文件:从前面下载的STM8标准固件库里找到 以下路径:…\STM8S_StdPeriph_Lib\Libraries\STM8S_StdPeriph_Driver\,然 后将文件夹下inc和src两个文件拷贝到我们建立好的文件夹Lib下
  • Readme:用于存放说明文档,文件夹下可建立 .doc 文件或 .txt 文件,如readme.txt, 记录开发进度或技术说明;
  • User:用于存放自己编写的驱动文件;
    模板文件夹

IAR工程建立及属性设置

新建workplace和project

1.打开IAR,新建一个工作空间(即workspace,这步有时候可以跳过,因为启动IAR时已经有一个workspace),点击 ProjectCheat New Project...Empty projectOK→然后弹出保存窗口,输入你要建立的工程名,如STM8S_IR,选择保存文件夹,将工程保存在我们第二步创建的文件夹的User文件夹下如..\STM8_LED\User\,然后点击保存。

2.出现以下一个空的工程:
在这里插入图片描述

Add Group

用鼠标选中该工程,点击右键出现右键菜单,依次点击 AddAdd Group... 创建分组如下:
Add group
注:如果项目计划里有用户应用程序,则还需添加 App 分组;如果有用到自己编写的驱动文件,则需要添加 Driver 分组;

Add Files

在上面三个 Group 中分别 Add Files...,添加如下:

  • Lib:添加stm8s_gpio.cstm8s.h文件(该文件路径为..\STM8_IR\Lib\src\,这里其实可以不用加.h文件,但由于后面有修改到,所以加了;添加之后会自动产生一个 Output 组)
  • Readme:添加 readme.txt 文件(该文件路径为..\STM8_IR\Readme\
  • User:添加 main.c 文件(该文件路径为..\STM8_IR\User\

头文件编译路径设置

这里只添加了 .c 文件,而不用添加相关.h文件的原因是,我设置了头文件的包含路径 ,设置如下:工程名右键→Options...C/C++ compilerPreprocessor
设置头文件包含路径
路径"$PROJ_DIR$\..\Lib\inc"是相对路径,"$PROJ_DIR$"是你在常见new project的时候所选择的路径,换句话说也就是 .ewp 的所存放的路径,..\ 指的是当前目录的上一个目录,当然,如果你的.c文件是和.h文件是在同一个目录下的话,可以不用设置该路径。

芯片型号设置

接下来还需要对工程属性进行设置:右键点击工程 STM8_IR,在弹出来的菜单里点击 Options...,在弹出的窗口<Options for mode “STM8_LED”>的 General Options 标签页的 Target 标签里的 Device 栏选择芯片型号,我用的是 stm8s003F3,根据实际芯片选择即可。
设置芯片型号

代码优化选项

工程的进一步设置,首先是 C/C++ Compiler 标签的 Optimizations 标签页,Level 框中勾选 Medium ,这是选择了中等的代码优化选项
在这里插入图片描述

烧录文件格式设置

然后是 Output Converter 标签页,设置串口下载文件格式,设置如下:
output文件设置
Linker 中的 Output 中的 output filename 不需要进行修改,保持xxx.out文件格式就行了,不需要改成.hex文件,不然编出来的hex文件放到 stvp 中烧录会出现not intel hex format的报错提示(而且改出来之后的hex文件比较大,跟原来的out文件差不多大小)
在这里插入图片描述

烧录工具设置

Debug 标签的 Setup 标签页,在 Driver 栏选择 ST-LINK 。注:这项设置非常重要,我们最常用的就是 ST-LINK 下载和调试功能:
ST-Link设置

对头文件"stm8s.h"修改

最后一个,打开 stm8s.h 文件,做一个小的修改,即把你使用芯片的对应的代码从注释状态解放出来(从官网下载来的库一开始都是只读RO模式,要改成可修改模式),举例如下:
打开相关芯片
这个操作其实等同于以下操作(两者选其一就行了,不然编译时会Warning):
在这里插入图片描述

保存工程

点击Save All,将一个 .eww 文件保存到 User 目录下,下次要打开该工程直接点击此文件就可以了

IAR使用过程中遇到的问题

包含错误的路径

原因是我对整个工程目录进行了移动,移动后,需要点击ProjectClean,这样才不会再弹出包含错误路径的窗口
在这里插入图片描述

no definition for xxx

原因是没引进相关的 .c 文件,需要在Group组中的添加 stm8s_gpio.h 就能解决这个问题了
在这里插入图片描述

duplicate definitions for xxx

原因是重复定义了,比如下面报错例子:
在这里插入图片描述
具体原因是:delay.c中的中断服务函数、remote.c中的中断服务与stm8s_it.c中的中断服务函数重复定义了;所以要把stm8s_it.c给remove掉

在这里插入图片描述

  • 10
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值