李工喜荣说:

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等。什么情况,原来是我们之前导入的FWLIB\SRC文件夹下包含了这写C文件,但是STM8S001J3并没有这些功能。那怎么办?删除!哪里删除?在IAR工程左侧窗口,展开FWLIB,根据错误提示,右键单击对应的文件,remove。再Make,完美!

项目源代码分享:https://download.csdn.net/download/mrlixirong/12117483

STM8S开发入门之使用EWSTM8(IAR STM8S)新建工程点亮一个LED(基于STM8S001J3)相关推荐

  1. 使用无线WIFI模块NodeMCU Lua V3物联网开发板8266-01/01S 在Arduino搭建环境到点亮一个LED灯

    使用无线WIFI模块NodeMCU Lua V3物联网开发板8266-01/01S 在Arduino搭建环境到点亮一个LED灯 软件下载 基于Arduino环境搭建 点亮一个LED灯 上传成功 修改代 ...

  2. 树莓派GPIO入门(一):点亮一个LED灯

    一.实验要求 点亮一个LED灯是电子开发最常见的入门实验.本次实验分为三个小实验: (1)点亮单个LED灯,并让其亮暗闪烁 (2)通过脉宽调制(PWM)点亮单个LED灯,并让其亮暗闪烁 (3)让LED ...

  3. 51单片机(入门保姆级教程)——点亮一个LED灯

    一.为什么要学习单片机? 作为一名工科学生,进入大学参加各种活动,例如:电子设计大赛.寻迹车比赛.LED电子灯比赛以及各种各样的微控.弱控强电路等,都离不开单片机的身影.电路.c语言.数电.模电.计算 ...

  4. 51单片机入门教程(1)——点亮一个LED灯

    51单片机入门教程(1)--点亮一个LED灯 一.什么是单片机 单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU.随机存储器 ...

  5. 详细介绍如何读懂STM32开发板电路原理图以及芯片文档和开发手册,并编写一个测试程序:点亮一个LED灯

    开发环境: 开发板:STM32PZ6806L芯片:ARM_STM32F103_ZE 软件开发环境:KEIL5 开发所需资料: STM32F1XX芯片电路原理图 STM32F1XX系列芯片手册 XX代表 ...

  6. stm8s开发(二) GPIO的使用:点亮LED!

    通用输入输出口(GPIO)是我们使用单片机最基本的,主要功能: ● 端口的各个位可以被单独配置 ● 可选择的输入模式:浮动输入和带上拉输入 ● 可选择的输出模式:推挽式输出和开漏输出 ● 外部中断可以 ...

  7. STM8S自学笔记之利用库函数点亮一个LED

    准备工作及前提 a.已安装IAR或者STVD b.下载标准固件库(StdPeriph_Lib_V2.1.0)备用; c.已建立好一个程序模板,如未建立请参考我的博客中的帖子STVD+STM8官方固件库 ...

  8. 乐鑫ESP32开发 1.Vscode创建新工程,编译,下载烧录,监视端口,点亮一个LED

    前言  Vscode安装ESP-IDF插件后,会在左下角生成一些按钮,用户可以点击实现配置.编译.下载.调试等功能.  但鉴于ESP-IDF的Vscode插件体验不是很好:不仅容易安装出错导致不能使用 ...

  9. mdk5+cubeMx入门简介(点亮一个LED灯)

    准备工作 安装mdk5以及cubeMx软件 cubeMx下载地址: https://www.stmcu.com.cn/Designresource/load_design_resource/cat_c ...

最新文章

  1. zw版【转发·台湾nvp系列Delphi例程】HALCON ZoomImageFactor2
  2. 虚拟机上无法运行Gazebo的问题?
  3. MySQL查看状态及简单优化
  4. Spring Web Flow 2.0 入门详解
  5. php在空值时调用成员函数_当Vlookup函数匹配的结果是时间,或者空值时,显示不正常了...
  6. 在RHEL6.2上,将一个分区开机自动挂载
  7. 中科大计算机本科毕业论文范文,中国科大本科生毕业论文管理再上新台阶
  8. SpringCloud Consul Config 配置中心 (二)
  9. Linux电源管理-Operating Performance Points(OPP)
  10. BeyondCompare3密钥过期如何处理。
  11. SPOJ 1811 Longest Common Substring
  12. python官网解释器选哪个_Python解释器的选择,初学者必看
  13. 细说PHP(精要版)
  14. 快速fcm matlab,Matlab中的FCM算法代码及中文详解
  15. 山东大学暑期实训——智能人物画像综合分析系统
  16. 慎用 Xmarks 多平台同步书签
  17. 看电子巨头的那些分分合合
  18. SAP MD04详解
  19. 计算机多媒体在教育应用中的优点,计算机多媒体教学的利与弊论文
  20. nonebot2——表情包生成插件

热门文章

  1. Flutter 中 Positioned、Align、Center 的使用详解 _ Flutter Widgets
  2. 干货分享 | 诺奖表观应用技术之KAS-seq助力转录活性调控研究
  3. int8_t int16_t int32_t等数据类型的定义
  4. OpenCV3.0中 Mat和IplImage相互转换
  5. 坚持瑜伽已经三个月了
  6. WORD中如何使页眉内容和章节保持一致
  7. excel中如何动态地创建控件以显示查询结果_年终汇报,Excel图表真难搞?80份可视化图表帮你10秒搞定...
  8. LynxFly科研小四轴横空出世,开源,F4,WIFI --(转)
  9. 数字化转型成功的四个支柱
  10. 学习数码相框1.1.0.0数码相框之系统框架