STM8S开发入门之使用EWSTM8(IAR STM8S)新建工程点亮一个LED

2020-03-08来源: eefocus关键字:STM8S  开发入门  新建工程  LED

1、预先安装好EWSTM8(IAR STM8)软件,全称为IAR Embedded Workbench for STMicroelectronics STM8 IDE


2、下载好STM8S标准库,此处所用标准库为STM8S_StdPeriph_Lib V2.3.1

3、新建个文件夹(名称自定),作为项目所在文件夹,并在项目文件夹里再新建两个文件夹,此处分别命名为FWLIB和USER。(注:这两个文件夹名字可以按你们自己意思取,无限制,如可以取HWLIB、SYSLIB、MYLIB、MYAPP、MYABC、XZY等)

4、将STM8S标准库(STM8S_StdPeriph_Lib V2.3.1)——Project——STM8S_StdPeriph_Examples——GPIO——GPIO_Toggle文件夹下的main.c、stm8s_conf.h、stm8s_it.c、stm8s_it.h这4个文件复制到刚才创建的USER文件夹下。

5、将STM8S标准库(STM8S_StdPeriph_Lib V2.3.1)——Libraries——STM8S_StdPeriph_Driver里面的inc和src文件夹复制到刚才创建的FWLIB文件夹下。

6、启动IAR STM8软件,点击菜单Project——Create New Project

7、软件将弹出窗口如下,Tool chain 选择 STM8 Series(系统默认),再选择C,点击OK确定

8、在弹出窗口中先选择之前所创建的项目文件夹,然后在命一个项目名,保存

9、好了,一个项目模型出现了。在第7步时,我们选择了“C”,所以生成项目后默认有个main.c文件。右键点击main.c,在弹出窗口中选择“remove”,删除它。

10、右键点击左侧窗口中项目名称,在弹出窗口中选择Add——Add Group,新增一个虚拟文件夹,此处我将其命名为USER(大家可以自定义,而且可以取和第3步创建的文件夹不同的名字)。

11、右键点击刚才所建立的文件(此处参考为USER),在弹出窗口中选择Add-Add Files,选择原来创建的项目文加下USER里面的4个文件。(此操作以及第10步操作,并未在电脑上真正产生新的文件夹和文件,实际上左侧窗口的这些文件夹和文件更像是一种超链接)。添加完成后,便可在IAR左侧窗口的USER下看到4个文件列表了。

12、以同样的方式,右键点击左侧项目名称,Add——Add Group,我这里还是同样命名为FWLIB,然后再以同样方式,右键点击FWLIB,Add——Add Files,选择真实文件夹FWLIB——src下的所有文件。注意,这里没有选择inc,只选择了src里面的文件。

13、此时项目基本建成,点击保存或者编译,软件可能提示要保存个eww,这个是工作空间的意思。如果之前有建立过工作空间,软件应该不会弹出这个窗口。

14、接着,我们对项目进行一些基本配置。右键点击左侧窗口的项目名,在弹出列表中选择“Options”,然后软件会弹出如下窗口。第一步,我们先设置好我们所用的单片机类型。General Options——Target——Device。

15、同样在Options窗口中选择C/C++ Compiler——Preprocessor——Additional include directories,将项目文件夹、FWLIB下的inc文件夹和USER这三个文件夹添加进来。如下图所示操作。

 

16、在设置下Output Converter和Debugger。

17、好了,这时候可以尝试编译(Compile)一下了。结果悲剧 "Please select first the target STM8S/A device used in your application (in stm8s.h file)"。什么原因呢?我也不懂,不过这句话给了提示:in stm8s.h file,那我们就找找stm8s.h文件。打开main.c文件,我们就可以看到第一行代码就有#include “stm8s.h”,然后看左侧,main.c下展开有个stm8s.h文件,没错,就是它,双击打开。原来是没有定义单片机型号,看来我们之前第14步设置的单片机型号在这里不起作用,那就再定义下。还是在Options窗口中选择C/C++ Compiler——Preprocessor——Defined symbols,输入STM8S001,注意,不是STM8S001J3,是001,这个要和stm8s.h文件里面描述的一致。

 

17、再编译(Compile)看看。系统提示identifier “GPIOH” is undefined。没关系,因为我们是从样例项目距中拷贝的main.c文件,有些内容和我们选择的单片机不匹配,那就修改修改。我们看STM8S001J3有哪些IO口,我这里选择PB5,更改。

 

18、这时候Compile没问题了,Make看看。错误一堆!identifier “ADC2” is undefined,identifier “ADC2_CSR_RESET_VALUE” is undefined,还有CAN、TIM3、TIM5、TIM6、UART2、UART3、UART4等。什么情况,原来是我们之前导入的FWLIBSRC文件夹下包含了这写C文件,但是STM8S001J3并没有这些功能。那怎么办?删除!哪里删除?在IAR工程左侧窗口,展开FWLIB,根据错误提示,右键单击对应的文件,remove。再Make,完美!


关键字:STM8S  开发入门  新建工程  LED 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic490807.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:IAR FOR STM8 学习笔记 固件库 GPIO
下一篇:自制STM8L15x最小系统

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

STM8S配置位 OptionByte
 1.什么是STM8S 的配置字 OptionByte2.Option Byt Byte 里面的位都表示什么3.如何编程Option Byte一 选项字节(OptionByte )STM8S 的配置字类似于AVR 的Fuse 熔丝位。用于配置端口的复用功能和读保护等操作。不同于AVR 的熔丝位,STM8S 的时钟配置并不在Option Byte 中,不会出现写完STM8S 后芯片直接锁死的尴尬。选项字节用于配置硬件特性和存储器保护状态,这些字节位于同一页的特定存储器阵列中。选项字节可以在ICP/SWIM模式中或IAP模式中修改, 也就是可以通过STlink 写配置字,或者是通过程序写选项字。举例:STM8S 的有一个
发表于 2020-04-27
STM8S配置位 OptionByte
STM8S——8位基本定时器(TIM4)
简介:该定时器由一个带可编程预分频器的8位自动重载的向上计数器所组成,它可以用来作为时基发生器,具有溢出中断功能。主要功能:(1)8位向上计数的自动重载计数器;(2)3位可编程的预分配器(可在运行中修改),提供1、2、4、8、16、32、64、128这8种分频比例;(3)中断产生:更新中断(溢出,计数器初始化)。代码实现: 1 /* Includes ------------------------------------------------------------------*/ 2 #include "stm8s.h" 3  4 /* Private
发表于 2020-04-25
stm8S毫秒定时器
#include "tim4.h"#include "stm8s_tim4.h"#define TIM4_PERIOD 124void Dely1ms(void){TIM4_DeInit();/* Time base configuration */// 8M/64=125000HZ// (x + 1)/125000=0.001s = 1ms// x = 124TIM4_TimeBaseInit(TIM4_PRESCALER_64, TIM4_PERIOD);/* Clear TIM4 update flag */TIM4_ClearFlag(TIM4_FLAG_UPDATE
发表于 2020-04-25
STM8S 115200bps 串口中断连续接收出错问题
内部16M晶振误差太大,导致波特率不准,9600bps可以。要想使用115200,就用外部晶振吧。还有数据寄存器DR中的数据如果没有及时取走(也可能因为波特率不准)导致数据溢出,出现反复中断现像,如在调试时如果暂停时串口上还有数据,再次运行时DR中的数据将一直是某个数据,正常情况下是不会出现的,解决办法就是进中断的时候清OV标志(不能解决根本问题)。
发表于 2020-04-18
STM8S主时钟切换(使用HSE时钟源)
的时钟源:HSE;启动切换中断;保持原时钟源开启  if (es == SUCCESS)  //切换是否成功,SUCCESS or ERROR  {      CLK_CCOConfig(CLK_OUTPUT_MASTER);//配置时钟输出脚的时钟源:f(master)      CLK_CCOCmd(ENABLE);//启动时钟输出功能  };  /* Infinite loop */  while (1)  {  }  }stm8s_it.c文件
发表于 2020-04-18
STM8S主时钟切换(使用HSE时钟源)
STVP烧录出错
用STVP烧录程序到STM8S003F时出现错误提示:Cannot communicate with the tool.其实是下载工具没选择好,确定返回到软件界面后,点Configure->Configure ST Visual Programmer,弹出如下窗口我们一般会选择右边两个栏内的选项,而把左边的Hardware一栏忘记选择,软件安装好之后默认是RLINK,而我们购买的工具大部分是ST-LINK,点选这个之后再返回软件,就可以正常烧录了。
发表于 2020-04-15
STVP烧录出错
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved