历史上的今天
返回首页

历史上的今天

今天是: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,完美!


推荐阅读

史海拾趣

Glow-Lite Corp公司的发展小趣事

对于红外遥控发射电路,网友可能会有多方面的问题。以下是一些可能的问题及其详细回答:

一、红外遥控发射电路的基本工作原理是什么?

回答
红外遥控发射电路的基本工作原理是,当用户按下遥控器上的某个按键时,遥控器内部的微控制器(CPU)会读取与该按键对应的二进制数据,并通过信号调理电路进行处理。随后,这些数据被调制电路转换为适合传输的信号,并经过放大后,由红外线发射二极管以红外光的形式发射出去。接收设备上的红外接收头接收到这些红外光信号后,会将其转换为电信号,并经过进一步的处理还原为原始的控制指令,从而实现遥控功能。

二、红外遥控发射电路常见的故障有哪些?

回答
红外遥控发射电路常见的故障主要包括以下几个方面:

  1. 电池电量不足或接触不良:这是最常见的故障之一,当电池电量不足或电池卡簧接触不良时,会导致遥控器无法正常工作。

  2. 按键故障:按键上的导电橡胶易磨损、老化,或按键电路中的铜箔线条断裂、开焊等,都会导致按键失灵。

  3. 振荡电路故障:振荡电路中的陶瓷谐振器易受到机械冲击而损坏,导致振荡频率偏移或停振,进而影响遥控信号的发射。

  4. 红外发光二极管故障:红外发光二极管可能因引脚开焊、内部开路或失效等原因而无法正常工作。

  5. 驱动电路故障:驱动电路中的晶体三极管、电阻等元件可能因开路、放大系数下降等原因导致故障。

  6. 编码集成电路故障:编码集成电路是整个遥控器的核心部分,其内部集成了多个复杂的电路。如果编码集成电路发生故障,将直接影响遥控信号的生成和发射。

三、如何判断红外遥控发射电路是否故障?

回答
判断红外遥控发射电路是否故障,可以采用以下几种方法:

  1. 观察指示灯:如果遥控器上有指示灯,可以通过观察指示灯是否闪亮来判断遥控器是否有红外信号发射。

  2. 替换法:用一个确认无故障的遥控器去控制同一台设备,如果控制有效,则说明原遥控器可能存在故障。

  3. 万用表检测:使用万用表测量遥控器电池电压、按键电阻、红外发光二极管两端电压等,以判断电路是否正常。

  4. 收音机检测:利用收音机的中频载波与遥控器振荡频率接近的特点,通过收音机接收遥控器发出的信号来判断遥控器是否具有发射能力。

四、如何维修红外遥控发射电路的故障?

回答
维修红外遥控发射电路的故障,需要根据具体的故障原因采取相应的措施。以下是一些常见的维修方法:

  1. 更换电池:如果电池电量不足或接触不良,应更换新电池或清理电池卡簧。

  2. 清洁按键:如果按键故障是由于导电橡胶磨损或灰尘等杂物造成的,可以用软布蘸无水酒精清洗按键表面。

  3. 更换元件:如果振荡电路、红外发光二极管、驱动电路或编码集成电路等元件损坏,应更换相应的元件。

  4. 焊接修复:如果电路中存在开焊、断裂等现象,应使用焊接工具进行修复。

  5. 调整电路:如果故障是由于电路参数设置不当或元件老化等原因造成的,应对电路进行调整或更换老化元件。

通过以上方法,可以有效地解决红外遥控发射电路中的常见故障。

Broadband公司的发展小趣事

由于电子行业中Broadband公司的发展故事可能涉及众多细节和具体数据,且这些故事往往与公司的战略决策、市场环境、技术创新等多方面因素紧密相关,因此,我无法直接为您虚构或编造五个具体的发展故事。不过,我可以为您提供一种可能的框架或思路,帮助您了解如何构建这样的故事。

在构建Broadband公司的发展故事时,您可以考虑以下几个方面:

  1. 公司背景与初创阶段:描述公司的成立背景,包括创始人、初始资金、技术基础等。讲述公司如何抓住市场机遇,推出首款产品或服务,并在早期市场中获得一定的份额。

  2. 技术创新与产品升级:描述公司在发展过程中如何通过技术创新不断提升产品性能和服务质量。可以提及公司在研发方面的投入、取得的专利成果,以及这些创新如何转化为市场竞争力。

  3. 市场拓展与合作:讲述公司如何逐步扩大市场份额,包括进入新的地区市场、拓展应用领域等。同时,可以提及公司与其他企业或机构的合作,如产业链上下游的整合、战略合作等。

  4. 应对市场挑战与竞争:分析公司在发展过程中遇到的市场挑战和竞争压力,如竞争对手的崛起、政策调整等。描述公司如何调整战略、优化运营,以应对这些挑战。

  5. 未来展望与战略规划:基于当前的市场环境和公司实力,展望公司的未来发展前景,包括可能的市场趋势、技术方向等。同时,描述公司的战略规划,如扩大产能、拓展新业务领域等。

在构建这些故事时,请确保基于事实进行描述,避免夸大或缩小事实。您可以查阅相关公司的官方资料、行业报告、新闻报道等,以获取准确的信息和数据。同时,注意保持故事的连贯性和逻辑性,使读者能够清晰地了解公司的发展历程和现状。

希望这个框架能够帮助您构建出符合要求的Broadband公司的发展故事。如果您需要更具体的帮助或建议,请随时告知。

Cliff Electronic Components公司的发展小趣事

由于字数限制,我将先为您提供一个关于Cliff Electronic Components公司的发展故事,如您需要更多内容,请再次询问。

Cliff Electronic Components的崛起与转型

在1977年,一个名为Cliff Electronic Components Limited的公司在英国悄然成立。初创时期,它主要为音乐行业提供连接器,满足了当时市场上对于音频设备连接的需求。随着市场的发展和技术的进步,公司很快意识到,仅靠单一产品线难以满足日益多样化的市场需求。

在公司成立的初期,Cliff面临着巨大的市场压力。当时,电子行业正经历着快速的技术革新,竞争对手层出不穷。为了在市场上站稳脚跟,Cliff决定对其产品线进行大刀阔斧的改革和扩展。他们不仅继续深耕音频连接器领域,还开始涉足交流电源连接器、直流电源连接器、馈通连接器等多种电子连接器产品。

进入80年代,随着个人电脑的普及和电子设备的小型化趋势,Cliff迎来了新的发展机遇。公司迅速调整战略,开始研发和生产适用于个人电脑的各种连接器。这一转型使得Cliff的产品线更加丰富,也为其赢得了更多的市场份额。

为了满足客户对于高品质产品的需求,Cliff不断加大研发投入,引进先进的生产设备和技术。他们在产品设计和制造工艺上不断创新,力求为客户提供更加可靠、高效的连接器解决方案。这种对品质的不懈追求,使得Cliff逐渐在市场上树立起了良好的口碑。

进入90年代,随着全球化的加速和电子行业的飞速发展,Cliff开始积极拓展国际市场。他们参加各种国际电子展会,与全球的客户和合作伙伴建立联系。通过与国际知名企业的合作,Cliff不仅提升了自身的品牌影响力,还进一步拓展了其产品的应用范围。

随着时间的推移,Cliff逐渐成为了一个在国际上享有盛誉的电子连接器品牌。他们始终坚持创新、品质和服务至上的理念,赢得了客户的广泛认可和赞誉。今天,当我们提到Cliff时,人们首先想到的是他们高品质的电子连接器和专业的客户服务。

若您想要探索更多内容,随时可以继续输入。请注意,由于Cliff Electronic Components公司的发展历程可能涉及多个方面,以上内容主要聚焦于其产品线扩展和市场拓展的方面。如果您对其他方面如技术研发、企业文化等有进一步的兴趣,可以再次输入以获取更多信息。

若您想要更多关于Cliff Electronic Components的故事,请随时告知。

中电熊猫(CEC)公司的发展小趣事

2007年,中电熊猫母公司中国电子信息集团公司(CEC)对熊猫电子进行了重组,全面推进平板显示全产业链发展。2015年,中电熊猫投资291.5亿元建设的8.5代液晶面板生产线投产,成为全球首条应用金属氧化物IGZO技术的超高分辨率液晶面板生产线。这一举措标志着中电熊猫在液晶面板产业中占据了重要地位,为后续的发展奠定了坚实基础。

Axon' Cable公司的发展小趣事

随着科技的不断进步,Axon' Cable公司逐渐将业务拓展至航空航天领域。公司研发出了一系列高性能、高可靠性的数据网络系统和连接器产品,成功应用于众多重要的航空航天项目中。这些产品的成功应用不仅提升了Axon' Cable在航空航天领域的知名度,也为公司带来了丰厚的利润和更广阔的发展空间。

ECM [ECM Electronics Limited.]公司的发展小趣事

ECM Electronics Limited.自创立之初,就注重技术创新。公司投入大量研发资金,专注于开发高效、节能的电子产品。通过不断的技术迭代和产品创新,ECM成功推出了一系列具有竞争力的产品,逐渐在市场上建立了良好的口碑。同时,公司还积极与高校和科研机构合作,引进先进技术,为公司的持续发展提供了强大的技术支撑。

问答坊 | AI 解惑

无线发射功率以及接收灵敏度

发射功率与增益 无线电发射机输出的射频信号,通过馈线(电缆)输送到天线,由天线以电磁波形式辐射出去。电磁波到达接收地点后,由天线接收下来(仅仅接收很小很小一部分功率),并通过馈线送到无线电接收机。因此在无线网络的工程中,计算发 ...…

查看全部问答>

请教:如何从硬盘引导进入vxworks

各位,我先从优盘引导进入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 ...…

查看全部问答>

你知道预处理器标识#error的目的吗?

   这问题对区分一个正常的伙计和一个书呆子是很有用的。只有书呆子才会读C语言课本的附录去找出象这种问题的答案。当然如果你不是在找一个书呆子,那么应试者最好希望自己不要知道答案。…

查看全部问答>

成立一个电子技术论坛,大家去看看!!www.520ic.cn

关于单片机、开关电源、信号源与频率计的专业论坛,大家有问题或者想下相关资料的去看看。另外本站首页提供200多万的ic芯片pdf资料搜索下载。www.520ic.cn…

查看全部问答>

网络驱动无法调用我的中断服务程序?/(帮忙)

通过PCI 总线配置寄存器,并安装了中断服务程序,查看中断寄存器也显示发送 和接收包正常,但就是发完和接完就是没有调用中断程序…

查看全部问答>

各位用过的兄弟:STM32生产时怎么设置保密性?

                                 如题,怎样设置以防止软件被读出??…

查看全部问答>

不好意思顶了老帖子,我对UART超时的用法。

我在CC2430上实现了MODBUS,在CC1110上实现了UART透传。 UART应用程序中超时,串口中断的时候数据往环形队列里面放,队列就是一个组数,有两个标记表示头和尾,这个方法我也是模仿一些国外开发系统中集成的程序。 主程序中用getch函数,读队 ...…

查看全部问答>

请教关于STM8S105的问题

                                 请问什么原因会导致STM8S105的可用RAM空间小于128字节呢?文档上不是说有2K的RAM吗。程序出了一点小问题,感觉是ra ...…

查看全部问答>