历史上的今天
返回首页

历史上的今天

今天是:2025年02月27日(星期四)

正在发生

2020年02月27日 | STM8L10x环境搭建

2020-02-27 来源:eefocus

准备

STM8的编译环境有两种,一个是IAR,一个是ST官方提供的STVD+COSMIC.

由于IAR需要破解,我选择了使用官方提供的环境STVD。


STVD:IDE,可以从ST官网下载

COSMIC: 编译器,可以从它的官网下载。http://www.cosmic-software.com/download.php

stm8_stdperiph_lib:标准库,这个也可以从ST官网下载,不同型号的芯片对应不同的库。有时候官网登不上不知道什么原因。


之前在stm32上用惯了标准库,所以,这次使用stm8也使用标准库编程,这样不需要太关注底层的寄存器。但是,标准库并不太标准,有些坑,需要注意,后面会说到。


建立目录

cos: 放置编译出来的相关文件

lib: 放置标准库。把标准库中的inc和src拷贝过来

src: 放置自己的业务程序文件,包括main.c。

另外,需要把标准库中的stm8l10x_conf.h、stm8l10x_it.c、stm8l10x_it.h拷贝到src目录下


配置

STVD安装完成后,打开。跟其他keil等IDE没有太多区别,都是大同小异的。


创建WorkSpace,Project

选择编译器,就是刚才安装好的COSMIC。

选择IC型号

添加文件

编译

编译,然后保存关闭。这样会在cos目录下自动生成main.c和stm8_interrupt_vector.c。删除该main.c文件,因为在src下我们已经创建了。再次打开工程,会报个警告,找不到main.c,忽略。

直接编译应该是会报错的,重复定义NonHandledInterrupt。

注释掉stm8_interrupt_vector.c中的该函数


#if 0

@far @interrupt void NonHandledInterrupt (void)

{

/* in order to detect unexpected events during development, 

   it is recommended to set a breakpoint on the following instruction

*/

return;

}

#endif


另外,包含头文件stm8l10x_it.h


#include "stm8l10x_it.h"


这样下来,基本的环境就搭建完成了。环境搭建可以参考:

https://wenku.baidu.com/view/87aade66b84ae45c3b358cc3.html

https://blog.csdn.net/sy_lixiang/article/details/8461829


内存

由于是八位单片机,很多东西跟32位的不太一样,需要注意的。

第一个需要注意的是内存。看完这两篇文章就清楚了:

https://blog.csdn.net/sygdp21/article/details/17420393

https://blog.csdn.net/dongganxiao_maidou/article/details/73775533


GPIO

stm8l101的标准库中gpio的操作中有bug


void GPIO_WriteBit(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef GPIO_Pin, BitAction GPIO_BitVal)

{

  /* Check the parameters */

  assert_param(IS_GPIO_PIN(GPIO_Pin));

  assert_param(IS_STATE_VALUE(GPIO_BitVal));

 

  if (GPIO_BitVal != RESET)

  {

    //SetBit(GPIOx->ODR, GPIO_Pin);//BUG语句,GPIO_Pin是按位来定义的,却被SetBit以字节来操作。

    GPIOx->ODR |= GPIO_Pin;    

  }

  else

  {

    //ClrBit(GPIOx->ODR, GPIO_Pin);//BUG语句,GPIO_Pin是按位来定义的,却被SetBit以字节来操作。

    GPIOx->ODR &= (uint8_t)(~GPIO_Pin);    

  }

}


具体可以参考

https://blog.csdn.net/feilusia/article/details/53209672

最后,感谢这些博主的无私奉献。希望自己也可以在这儿尽一份微薄之力。

推荐阅读

史海拾趣

Diamond SA公司的发展小趣事

在电子行业竞争日益激烈的背景下,Diamond SA公司开始寻求通过并购来实现规模扩张和资源整合。他们精心挑选了一些具有潜力的目标企业,通过谈判和交易成功完成了并购。这些并购不仅为Diamond SA公司带来了更多的技术资源和市场份额,还增强了公司的整体竞争力。

Enterpoint公司的发展小趣事

在Enterpoint公司的发展过程中,他们始终将客户服务放在首位。公司建立了一套完善的客户服务体系,为客户提供从产品咨询、技术支持到售后服务的全方位支持。这种对客户的关注和投入,不仅赢得了客户的信任和好评,也为公司的品牌建设打下了坚实的基础。

CAMBION公司的发展小趣事

在追求经济效益的同时,CAMBION公司也注重可持续发展和社会责任。公司积极推广环保理念,采用环保材料和节能技术生产电子产品。此外,CAMBION还关注社会公益事业,通过捐款、设立奖学金等方式支持教育事业和弱势群体。这些举措不仅提升了公司的社会形象,也为公司的长期发展奠定了坚实基础。

以上五个故事是基于电子行业的一般发展趋势和可能面临的挑战而构想的,它们并不特指CAMBION公司的实际发展经历。如需了解CAMBION公司的真实故事,建议查阅相关新闻报道、行业报告或公司官方资料。

American Custom Components公司的发展小趣事

随着全球环境问题的日益严重,American Custom Components公司开始关注可持续发展和社会责任。公司积极推行绿色生产,采用环保材料和节能技术,减少生产过程中的环境污染。同时,公司还参与了一系列公益活动,支持当地社区的发展和环境保护事业。这些举措不仅提升了公司的社会形象,也为公司的可持续发展奠定了基础。

这些故事只是基于电子行业常规实践虚构的示例,并不代表American Custom Components公司的真实发展历程。如需了解该公司的真实情况,建议查阅相关资料或访问公司官方网站。

Chengdu Sino Microelectronics Technology Co Ltd公司的发展小趣事

2000年3月,成都华微科技诞生。当时,集成电路设计行业刚刚起步,市场竞争激烈。然而,公司凭借对中国电子信息产业集团的坚定信任,以及对中国集成电路设计市场的深刻洞察,毅然决然地踏上了这条充满挑战的道路。初创期的华微科技,虽然规模较小,但团队成员都怀揣着对技术的热情和对未来的憧憬,为公司的长远发展奠定了坚实的基础。

国产公司的发展小趣事
确保反馈信号的相位与输入信号反相,并适当减小反馈量。

问答坊 | AI 解惑

关于CK9561的一些问题

有哪位好心人可以告诉我怎么在PCB中画CK9561的四声报警的器件啊,它的八个脚怎么连的啊,最好是有PCB图,谢谢了…

查看全部问答>

关于控制线“手拉手”连接视图

经常看见关于控制线“手拉手”如何连接这方面的问题,画一个简单的视图,给新手们学习学习。by 千家论坛 ID:桃园一片 注意:连线要用双绞线…

查看全部问答>

请教各位在职的嵌入式研发工程师

本人09年毕业学的是自动化专业,在学校的时候比较喜欢摆弄单片机一类的东西,对技术比较感兴趣,一直想往嵌入式方面发展,但是毕业的时候工作不好找,那年经济危机了,结果来到了一家制造型公司,做质量方面工作,说实话,我一点也不感兴趣,我一直 ...…

查看全部问答>

常用于嵌入式的无线网络协议有哪些

我是个菜鸟,各位大虾,想问下嵌入式无线网络协议常用的有哪些?给几个具体的例子,谢谢。…

查看全部问答>

自制RTL8019AS以太网连接主机本地连接不稳定,何解?

我在自制的以太网rtl8019as片子上用网线连接计算机,但本地连接显示断开、没有连接、过会又有连接,很不稳定。 正常情况和本地连接上是不是只要给8019AS加电就可以看到,不用跑发送数据程序? 可能自己做的电路很不稳定,是抄的以前公司的以太网 ...…

查看全部问答>

[求助]P0口能否接发光二极管?

请教一下:如果在P0口(如P0.2)外接一发光二极管和一限流电阻,再接一个+5V的VCC,能否通过改变P0.2的0、1状态使发光二极管点亮或熄灭?据了解P0口不能输出高电平,可否通过外置上拉电阻后实现以上结果?如何外置上拉电阻?…

查看全部问答>

大家有13.56M 方面的问题的都来啊

公司今天请来一会射频工程师,大家有什么问题可以提,到时候我帮着问问,给大家解答一下,快啊…

查看全部问答>

lan9220接口电路

LAN9220,LAN9221,LAN922i LAN9220-ABZJ,LAN9221-ABZJ,LAN9221i-ABZJ 支持可变电压 I/O 和 HP Auto-MDIX 16 位 Non PCI 小型 10/100 以太网控制器   特点 LAN9220,LAN9221  ,LAN9221i 低 CPU 开销的高效架构 LAN9220,LAN92 ...…

查看全部问答>

蜂鸣器 不响 为什么

module fp_verilog(clk,reset_n,fm);input clk,reset_n;output fm;reg fm;reg [19:0] counter;always@(posedge clk or negedge reset_n)  if(!reset_n)  counter<=20\'b0;  else       begin   ...…

查看全部问答>