历史上的今天
返回首页

历史上的今天

今天是:2025年03月03日(星期一)

正在发生

2020年03月03日 | STVD+STM8官方固件库创建工程模板

2020-03-03 来源:eefocus

本文借鉴了在KEIL、IAR、以及一些IDE创建工程模板的经验尝试得出。如有偏驳,欢迎将Email给我,我将及时修改,如有版权问题,请管理及时联系我删帖,维护版权。


1、安装STVD(IDE)+ COSMIC(编译器),本文省略

需注意,需要留意COSMIC的安装路径,以免系统无法自动识别时,可手动配置。


2、下载STM8S的固件库

可于意法半导体官网下载STM8S的固件库,也可位于STM论坛(百度可以搜到),个人建议去STM论坛,本文用的是STM8S_StdPeriph_Lib_V2.1.0,下载完后解压备用。


3、新建存放模板的路径(文件夹)并将固件库放进相对指定文件夹

a、需要新建存放文件的路径的文件夹。例如,整个工程模板存放在(Dir)Demo[注:(Dir)表示你想要存放的的任意文件夹]。然后再Demo文件夹新建三个文件夹分别命名为cosmic、libraries、source,名称原则随意只要自己开心,但不要有一些不符合命名规则的。因此,当前文件夹组成如下:

这里写图片描述

b、将下载的固件文件夹STM8S_StdPeriph_Lib_V2.1.0 Libraries STM8S_StdPeriph_Driver下的inc、src复制到libraries下,粘贴完成后路径构成如下:

这里写图片描述

c、将固件库中STM8S_StdPeriph_Lib_V2.1.0ProjectSTM8S_StdPeriph_Template下的main.c、stm8s_conf.h、stm8s_it.c、stm8s_it.h复制粘贴到自己所建模板文件路径的source下,目前路径构成如下:

这里写图片描述

4、启动STVD(全称ST Visual Develop)

a、开始>所有程序>ST Toolset>Development Tools>ST Visual Develop,启动后界面如下:

这里写图片描述

b、选择File>NewWorkspace,选择如图所示选项即可。

这里写图片描述

c、在Workspace Name填谢你需要的模板工作空间的名字,并在Workspace location选择你的模板所在路径的cosmic文件夹,图中的路径是一个非法的,只是用一个变量表示在Demo所在上一级前路径不管是否一致,但从Demo文件夹开始你要跟上节奏。

这里写图片描述

d、填写工程名,并选择编译器,如果选择了STM8 Cosmic下边的Toolchain root没识别出来,九点旁边的三个点,手动选到所在文件夹。

这里写图片描述

e、选择器件,这里选择自己的芯片型号,错了也没事,只是之后设置的再重选就行了,本人的是STM8S103(记住自己的芯片型号,之后有用)。完成后展开选项如图所示:

这里写图片描述

f、点开main.c 按键F7编译一下后选择File>close Workspace,并保存修改【为了在模板路径cosmic下生成main.c以及中断向量表stm8_interrupt_vector.c,此时的中断向量表文件未填充各个中断类型,因此添加固件库编译后会提示错误,因为这个要被覆盖】。将模板cosmic路径下的main.c剪切(Ctrl+x)粘贴到模板路径source下。并将加压得到的固件库路径STM8S_StdPeriph_Lib_V2.1.0>Project>STM8S_StdPeriph_Template>STVD>Cosmic下stm8_interrupt_vector.c【已填充好中断向量表的文件】文件复制粘贴到自己的模板的cosmic下,并覆盖自己模板下的文件。

g、在STVD中依次选择File>Recent Workspace>(Dir)DemocosmicDemo.stw[即是自己刚刚关闭的那个] ,因为改变了原生成main.c所以会提示错误,一直点是,然后再在STVD的Source右键添加并选择文件main.c。我这里为了表示这是官方库,就删除了Include Files新建了用固件库的名字命名的选项,并且在其下边又建了一个src的选项,这一步可以不用。如图所示:

这里写图片描述

5、配置STVD

a、选择Tool>Options,打开后选择Directories,并逐项添加,模板所在路径,如果之后你还有自己额外的代码,类似的也要添加,不然会一直提示找不到找不到,然后错错错,Demo前的路径各有差异,如下界面:

这里写图片描述

b、假设你不知道,在官方未修改的固件库里stm8s.h器件选型是被注释的,而你未取消注释,为了接下来编译不出提示错误#error cpstm8 G:STM8SstvpDemoLibincstm8s.h:65 “Please select first the target STM8S/A device used in your application (in stm8s.h file)”

依次选择Project>Setting打开后,选择C compiler下的Preprocessor Definitions填上自己的芯片型号,例如我的是STM8S103【注意字母大写】,这样即使你没有在stm8s.h里去掉注释也能编译通过。完成后双击main.c,填上预处理头文件命令【如图】后,按下F7编译。编译完成后展开External Dependencies,将看见图上的一些头文件,这些头文件就是你所选芯片支持的固件资源,没有的就是不支持的【详细的文件为stm8s_conf.h】你只要按照这里有的器件右键在IncludeFiles【我这里是STM8S_StdPeriph_Lib】里添加资源对应的.c文件,就不会编译错了,没必要将支持的资源对应的文件都添加,用什么加什么,节约编译的时间,提高开发效率。

这里写图片描述

6、需注意事项

这是经过错误提示后将标准库文件从列表中修改后的结果。原因是并不是每款芯片都支持每个外设,例如STMS103F3并不支持adc2、tim5等等。解决方法有两种如下:

方法一[推荐]: 在提示有错的源文件上鼠标右键>Settings>Exclude file from build[意为构建工程时该文件不参与编译链接等,其他IDE也具有类似功能],也可选择将文件移出工程[不推荐移除,移除后改选类型,但想要使用原来的模板可能会有遗漏]。


方法二: 对照头文件stm8s_conf.h选择器件支持外设,在src下保留.c文件, 缺点是保不齐有遗漏的,将导致会报错。

推荐阅读

史海拾趣

Circuit Technology Inc公司的发展小趣事

随着市场竞争的加剧,CTI意识到品质管理对于企业发展的重要性。于是,公司开始引进先进的品质管理体系,从原材料采购到生产流程控制,再到产品检测,每一个环节都严格把关。同时,CTI还加大了品牌宣传力度,通过参加行业展会、举办技术研讨会等方式,提升品牌知名度和影响力。这些举措不仅提高了产品的品质稳定性,也赢得了客户的信赖和支持。

CDIL[Continental Device India Pvt. Ltd.]公司的发展小趣事

随着全球化进程的加速,CDIL积极寻求与国际知名企业的合作,共同推动电子产业的发展。通过与全球领先企业的合作,CDIL不仅引进了先进的技术和管理经验,还拓展了国际市场,进一步提升了公司的国际影响力。如今,CDIL的产品已远销海外多个国家和地区,为全球电子产业的发展作出了重要贡献。

这五个故事展示了CDIL在电子行业中的发展历程和取得的成就。从半导体制造的先驱到IC封装与电子制造服务的转型,再到产能提升、新技术研发以及国际合作与市场拓展,CDIL始终保持着对技术的追求和对市场的敏锐洞察。正是这些努力,使CDIL在激烈的市场竞争中脱颖而出,成为电子行业中备受瞩目的企业。

BALLUFF公司的发展小趣事

20世纪50年代初,BALLUFF公司与德国Heller机床制造公司建立了合作关系。根据Heller公司的要求,BALLUFF制造了新型机床电控装置所需的凸轮开关。这一合作的成功不仅让BALLUFF获得了Heller公司的信任,更让其在机床制造领域获得了重要突破。随后,Heller公司进一步委托BALLUFF开发相关产品,这使得BALLUFF在电子机械式极限开关领域取得了重要进展,为其日后的传感器业务发展开辟了新道路。

鑫雁公司的发展小趣事

为了更快地拓展市场,聚洵半导体积极寻求与国内外知名企业的合作。公司与世界领先的芯片制造公司台积电建立了晶圆代工合作关系,并在长电科技和华天科技进行封装测试,确保了产品的一流工艺和品质。此外,聚洵还与国内多家电子元器件电商平台如立创商城、华强芯城等建立了紧密的合作关系,通过线上线下双管齐下的分销渠道,将产品迅速推向市场。这些合作不仅提升了聚洵的品牌知名度,还极大地促进了其市场份额的增长。

浙江东亚电子(DongYa)公司的发展小趣事

浙江东亚电子一直将品质管理作为公司发展的重要基石。公司建立了完善的质量管理体系,从原材料采购到产品制造、销售等各个环节都严格把关。此外,公司还积极参与行业标准和规范的制定工作,不断提升自身的品质管理水平。

Astec [Astec America, Inc]公司的发展小趣事

面对数字化转型的大趋势,Astec也积极拥抱变革。公司加大了对信息技术和智能制造的投入,通过引入先进的生产管理系统和数据分析工具,提高了生产效率和产品质量。同时,Astec还积极探索新的商业模式和销售渠道,以适应数字化时代的市场需求。展望未来,Astec将继续坚持创新驱动的发展理念,不断推动公司在电子行业中的持续发展。

这五个故事基于Astec America, Inc在电子行业发展的主要阶段和事件进行编写,旨在客观描述公司的发展历程和重要成就。请注意,这些故事可能无法涵盖公司发展的所有细节,但能够提供一个大致的框架。

问答坊 | AI 解惑

想请高人指点一下

我今年三十四岁了,在电工行业工作,想转业学习电子工程和单片机应用,请问这个年龄转业还能找到相关的工作吗?…

查看全部问答>

关于驱动的一点问题

写驱动是C合适?还是C++更好些? 性能上有什么差别吗?…

查看全部问答>

如何设置目标机启动后的ip地址

我用的板子的启动方式是bios+dos,请问如何设置目标机启动后的ip地址。和项目相关,很着急,恳求高手指教。…

查看全部问答>

zet6内部的flash怎么能做成优盘

                                 做成优盘 然后pc端 放很多文件进去 每个文件是一个程序 mcu能够随时调用…

查看全部问答>

[请问]使用ADC时关于引脚上电压问题

小弟初用STM32F103 64管脚的ADC功能 参考Example1中 使用DMA传输转换后的数据 通过PC.01(Channel11)进行采集来自外部AD键盘的电压 键盘的电压在未接PC.01时,一切正常!但是一旦接了PC.01后 就不正常了,变得非线性;但是ADC仍然可以采样电 ...…

查看全部问答>

对比方案赛+单片机多路供电比较

本帖最后由 ddllxxrr 于 2014-6-8 11:23 编辑 本人从事单片机好多年了。第一步自然是电源电路。我司的单片机是220降到12V。然后再分出几路来。一般有12V,供外接模块或传感器用。5V供5V单片机或5V传感器用。3.3V供3.3V单片机用。 我司的方案是。2 ...…

查看全部问答>

高频小信号衰减

射频放大电路,输入2mv,高频信号,当信号频率50M以上的时候,信号幅值明显衰减,这个问题怎么解决? …

查看全部问答>

请问IIs和IIC有什么区别?

请问IIs和IIC有什么区别?…

查看全部问答>

【FPGA入门到实战】DAC3283 寄存器初始化,SPI驱动写法以及技巧; 源码&答疑

【FPGA入门到实战】ex_7:DAC3283 寄存器初始化,SPI驱动写法以及技巧;  学员对视频里的知识点不理解的可以在论坛里提出问题,我们老师会给大家答疑! 源码: …

查看全部问答>