当前位置: 首页 > news >正文

IAR创建STM8裸机工程创建---STM8开发【二】

目录

一、准备工作

1、首先创建分配文件夹

2、BSP文件夹说明

3、Mycode文件夹说明

4、user文件夹说明

5、STM8S标准外设库下载

6、从库函数例程目录拷贝文件main.c、stm8s_conf.h、stm8s_it.c 、stm8s_it.h到USER目录,步骤如下

二、工程创建 

1、打开IAR软件

2、 打开IAR,新建一个工作空间,并保存

3、创建工程 

4、添加文件分组

5、往新建的分组里面添加文件

1)往USER文件添加main.c、stm8s_it.c

6、配置工程 

1) 选择你的芯片,我这边是用STM8S003K3

 3)添加头文件路径

4)预处理Preprocessor - 预定义 

5)选择了合适的代码优化选项。

6)输出Hex文件

7)选择下载调试工具

三、工程编译

四、如何使用IAR进行程序下载

 五、如何使用STV软件进行下载

1、打开软件 STVP

2、点击选择配置参数

3、选择hex下载文件

4、是否锁定芯片程序

5、Program –> All tabs(on active sector ifany),开始下载程序

6、板子重新上电,程序开始运行


上一篇文章我们讲解了我的STM8主要开发工具IAR的破解安装,既然软件破解安装成功了,那么接下里就要来创建我们的工程

一、准备工作

1、首先创建分配文件夹

整个工程可以粗略的划分为几个文件夹: 

BSP底层驱动比如GPIO\Timer等驱动文件
Mycode用户编写的相关文件,主要编写的文件都在这个文件夹里
STM8_FWLIB标准库文件
USER主函数及芯片启动文件等文件

2、BSP文件夹说明

BSP文件夹:主要用来用放置底层接口驱动文件,比如GPIO初始化、定时器初始化、PWM、串口初始化等等配置

3、Mycode文件夹说明

Mycode文件夹:用来存放自己添加的驱动子模块程序

 

4、user文件夹说明

  user文件夹:这个文件夹主要是用来存放自己编写的.C和.H文件,一般我会将main.c和main.h文件放在user根目录下以及创建的工程还有STM8的中断头文件文件夹等

5、STM8S标准外设库下载

官网下载链接(需要ST账号登陆):

https://www.st.com.cn/zh/embedded-software/stm8-embedded-software/products.html

 截止2025.05.28最新的STM8S的标准库版本是V2.3.1,我这边现阶段使用的是V2.3.0,因为相差不大,我就没下载最新,如需要最新你们就自己登录下载就好

 

此链接是V2.3.0标准库

通过网盘分享的文件:STM8S标准外设库文件V2.3.0
链接: https://pan.baidu.com/s/1MTK7B7mKyGK2T3aXVlo65A 提取码: kf23

6、从库函数例程目录拷贝文件main.c、stm8s_conf.h、stm8s_it.c 、stm8s_it.h到USER目录,步骤如下

复制这四个文件

来到我创建的裸机工程文件夹下,进行粘贴

 

 7、在回到标准库这里,把标准库文件拷贝到我们的裸机工程里

复制一下这两个文件夹

粘贴到我们的工程

到这里,我们前期工作就完成了

二、工程创建 

1、打开IAR软件

2、 打开IAR,新建一个工作空间,并保存

 

然后保存这个工作空间 到我们的USER文件夹下

3、创建工程 

 如下显示,至此,一个空的基础工程就创建好了,需要进一步添加文件到工程和配置工程。

4、添加文件分组

我们按照之前文件命名方式来添加分组

其他文件按照此方式如法炮制,最终显示如下

5、往新建的分组里面添加文件
1)往USER文件添加main.c、stm8s_it.c

 2)往STM8_FWLIB文件添加.c库文件

 

6、配置工程 

右击工程名

1) 选择你的芯片,我这边是用STM8S003K3

2)库配置Library Configration

如果需要使用某些标准的库函数接口(如我们使用的printf and scanf),就需要选择Full(见下图)。

需要你就选择,FULL

不需要,你就选择NORMAL

我这边选择FULL,Printf常用

 3)添加头文件路径

先添加USER文件路径

可以打看添加路径后显示红色打叉,需要再点击右边的箭头,然后选择第二个对路径进行转换

 

这样才可以,然后此后还是如法炮制,把所有都添加下

 

4)预处理Preprocessor - 预定义 

由于我使用的是STM8S003K3T6,所以在这里我要填入 STM8S003

你们使用其他芯片你们就写入对应的型号即可

那么可能有同学就会问,这个型号要大写还是小写呢?我们就打开stm8s.h文件,红框里面找到对应的型号,复制下来

将复制下来的型号,填入进去 

5)选择了合适的代码优化选项。

None->

有最好的debug支持,变量的生命周期会贯穿它的整个作用域,也就是说编译器不做任何优化,只要是变量的作用域,这个变量就是有效的。

Low->

仍然是具备调试支持的,优化的是变量的生命周期,如果一个变量没有作用了,后面不会用到它了,就会把它优化掉,不让它贯穿它的整个生命周期。

这有什么好处呢?这个变量不存在了,就意味着寄存器的压力减小了很多,可以腾出更多空间给更有需要的变量

Medium->

除了上述优化以外,还加入了很多新的优化。无用的代码清除。冗余标签消除

High->

最高程度的优化。具备以上所有的优化之外

结论:要想观察局部变量的值,在Debug调试的时候可以把优化等级设为None,才可以看到变量的变化,正常时候我是设置为LOW,Medium和Highz这两个深度优化虽然可以减小代码占用空间,但是出现问题很难排查

6)输出Hex文件

 

 

7)选择下载调试工具

三、工程编译

1)编译工程

 出现一堆错误,提示没有没有ADC1 TIM5 TIM6 UART2 UART4等等

原因:因为我们选型的芯片(STM8S003)没带有ADC2  CAN TIM3 TIM5 TIM6 UART2 UART3 UART4,所以在库文件列表文件中去掉去掉

我们一个个进行移除

移除完后,在进行编译 

四、如何使用IAR进行程序下载

我们将STLINK与板子下载口进行连接,点击右上角的绿色按钮即可

 五、如何使用STV软件进行下载

1、打开软件 STVP

2、点击选择配置参数

3、选择hex下载文件

File -> Open,加载编译好的.hex文件

4、是否锁定芯片程序

 当你导入hex文件后,点击下方的点击OPTION BYTE。 ON就是每次烧写完将FLASH锁住。以免别人读你的IC。实际看你需求了

调试阶段我们就使用OFF即可

5、Program –> All tabs(on active sector ifany),开始下载程序

下载成功提示 

6、板子重新上电,程序开始运行
7、裸机工程的链接

通过网盘分享的文件:STM8S003裸机工程
链接: https://pan.baidu.com/s/1rPGjdGwhhgdxOX36RA20tg 提取码: 3p21

相关文章:

  • 金融全业务场景的系统分层与微服务域架构切分
  • 科技赋能音乐,指北科技新品闪耀广州国际乐器展
  • 智慧场馆:科技赋能的艺术盛宴
  • 青岛市长任刚与深兰科技董事长陈海波会谈,深兰青岛项目即将进入快车道!
  • leetcode hot100刷题日记——24.回文链表
  • Problem H. saki 酱 saki 酱 saki 酱 saki 酱(树的直径)
  • 影刀RPA-17- 列表练习
  • OpenCV CUDA模块直方图计算------在 GPU上执行直方图均衡化(Histogram Equalization)函数equalizeHist
  • 【Redis】基本命令
  • 油桃TV v20250519 一款电视端应用网站聚合TV播放器 支持安卓4.1
  • 英飞凌SBC芯片TLE9263QX for STM32的库函数与使用
  • git push Git远端意外挂断
  • 基于FPGA的DES加解密系统verilog实现,包含testbench和开发板硬件测试
  • AI笔记 - 模型调试 - 调试方式
  • 基于ssm的商城系统(全套)
  • 为 MCP Server 提供 Auth 认证,及 Django 实现示例
  • 20250528-C#知识:枚举
  • 学习路之Nginx--不同域名的反向代理
  • MySQL MVCC(多版本并发控制)详解
  • 力扣热题100之二叉树的中序遍历
  • 酒店网站建设设计/上海seo网站排名优化公司
  • 叶榭做网站/cms快速建站
  • 可信赖的做pc端网站/网站优化平台
  • 网站建设教程网/免费浏览网站推广
  • 青州网站建设优化推广/seo技巧
  • 武汉建筑公司网站/实时疫情最新消息数据