历史上的今天
今天是:2025年03月08日(星期六)
2020年03月08日 | STM8S开发入门之使用EWSTM8(IAR STM8S)新建工程点亮一个LED
2020-03-08 来源:eefocus
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,完美!



史海拾趣
|
发射功率与增益 无线电发射机输出的射频信号,通过馈线(电缆)输送到天线,由天线以电磁波形式辐射出去。电磁波到达接收地点后,由天线接收下来(仅仅接收很小很小一部分功率),并通过馈线送到无线电接收机。因此在无线网络的工程中,计算发 ...… 查看全部问答> |
|
各位,我先从优盘引导进入dos,盘符为C: 然后把生成的bootrom.sys,vxworks以及vxload.com拷贝到硬盘D:(已用format d:/s格式化了) 结果启动到verifying DMI pool data......就不动了,我的硬盘是4G的电子盘,我不知道这个做法对否?希望大家能帮 ...… 查看全部问答> |
|
又是可怕的DEMO: InterruptInitialize failed!!! 请各位前辈帮帮忙。 InterruptInitialize(SysInt,Interruptevent,NULL,0) 我的这个函数总是返回为FALSE, SysInt在oalintr.h上已经定义,而且在cfw.s 和armint.c也加入相应的中断处理,使能,代码Interru ...… 查看全部问答> |
|
这问题对区分一个正常的伙计和一个书呆子是很有用的。只有书呆子才会读C语言课本的附录去找出象这种问题的答案。当然如果你不是在找一个书呆子,那么应试者最好希望自己不要知道答案。… 查看全部问答> |
|
成立一个电子技术论坛,大家去看看!!www.520ic.cn 关于单片机、开关电源、信号源与频率计的专业论坛,大家有问题或者想下相关资料的去看看。另外本站首页提供200多万的ic芯片pdf资料搜索下载。www.520ic.cn… 查看全部问答> |
|
我在CC2430上实现了MODBUS,在CC1110上实现了UART透传。 UART应用程序中超时,串口中断的时候数据往环形队列里面放,队列就是一个组数,有两个标记表示头和尾,这个方法我也是模仿一些国外开发系统中集成的程序。 主程序中用getch函数,读队 ...… 查看全部问答> |




