历史上的今天
返回首页

历史上的今天

今天是:2024年09月07日(星期六)

2020年09月07日 | STM8 EEPROM心得

2020-09-07 来源:eefocus

对于STM8来说,其内部的EEPROM确实是个不错的东西,而且STM8S103/105价格已经非常便宜了,当然也可以用STM8S003/005代替,而且价格更便宜,大概在,1.2/2.0元左右,比103/105的便宜1元左右,而且有网友说,其实这两个系列的晶圆完全是一样的(这个是秘密哦),至于ST为什么要这样做,我们就不去猜了,大家应该都知道。


对于EEPROM的读写时间比较长,特别是写入的时间,都是在ms级的,想必大家都知道。但是对于单片机内置EEPROM来说,由于其内部特性,导致单片 机在操作EEPROM时,不能产生中断,当然这个问题一般来说是没有问题的。但是像有数码管扫描的产品来说,这个就是问题了,一般来说,3位数码管扫描周 期为18ms是没有问题的,但大于这个时间,就有闪烁的感觉了,所以,对于3位数码管来说,没有显示的时间大概为6ms,而我们从STM8芯片手册上得到 是典型的EEPROM操作时间为6.6ms,所以,显示3位数码管就比较危险了,如果是4位,或者更多,那就更麻烦了。


对于实验确实可以获取EEPROM的操作时间大概是2.5ms每字节,为此,如果在时间限制比较短的地方,我们可以在数码管点亮后的空闲时间去显示数 据,但每次只能是一字节数据,故要解决这个问题,最好建立个显示缓冲,每次在显示空闲时间去看缓冲中有无数据,如果有,我们就存储,直到存储完整为止。但 是我们还发现一个问题,如果用EEPROM的块操作,实际上,消耗的时间和用操作一字节是一样的。所以,我们也可以用每次操作一块的方式实现EEPROM 的操作,从而实现,大量数据的存储。


下面我们简单说说,如何实现块操作:


STM8的库函数中已经提供了块操作函数FLASH_ProgramBlock(),但是要进行块操作,还必须进行一系列的配置,否则,程序代码会死在这个函数里边的。



1. 修改stm8s_conf.h的注射,让#include "stm8s_flash.h"得以编译


2.修改stm8s.h的注射,让使Flash功能能够从RAM中运行


#if !defined (RAM_EXECUTION)

    #define RAM_EXECUTION  (1)                                                  // 块写入时,必须打开这里的注射

#endif /* RAM_EXECUTION */



3.修改完成后,将产生不少警告,消除的方法,暂时还没有找到,但不影响代码的运行。



/**************************************************************************************

* FunctionName   : EEPWirteBlock()

* Description    : 块写入

* EntryParameter : None

* ReturnValue    : None

**************************************************************************************/

void EEPWirteBlock(u16 blockNum, u8 *pDat)

{

    //u8 tmpBuf[FLASH_BLOCK_SIZE] = {0};


    FLASH_EraseBlock(blockNum, FLASH_MEMTYPE_DATA);

    while (FLASH_GetFlagStatus(FLASH_FLAG_HVOFF) == RESET)

    {

        ;

    }

    

    FLASH_ProgramBlock(blockNum, FLASH_MEMTYPE_DATA, FLASH_PROGRAMMODE_FAST, pDat);

    while (FLASH_GetFlagStatus(FLASH_FLAG_HVOFF) == RESET)

    {

        ;

    }

}


推荐阅读

史海拾趣

Electronic-Bauteile Goerlitz GmbH公司的发展小趣事

在技术创新的基础上,Electronic-Bauteile Goerlitz GmbH公司积极拓展市场。公司通过分析市场需求,调整产品策略,不断推出符合市场需求的新产品。同时,公司加强了品牌建设,通过参加国际展会、举办技术研讨会等活动,提高了品牌知名度和影响力。这些努力使得公司的产品在国内外市场上都取得了良好的销售业绩。

Flambeau公司的发展小趣事

随着电子行业的快速发展,Flambeau公司不断加大研发投入,致力于技术创新和产品多样化。公司研发团队通过改进生产工艺、优化材料配方、引入先进的设计软件等措施,不断提升产品的性能和质量。同时,Flambeau还积极拓展产品线,从最初的塑料储存产品扩展到更广泛的电子包装解决方案,包括防静电包装、抗震包装等,以满足电子行业日益增长的多样化需求。

Heidenhain Corp公司的发展小趣事

随着电子行业的快速发展,对高精度电子元件的需求日益增长。海德汉公司凭借其iTNC系列数控系统的高精度控制能力,成为众多电子元件制造商的首选合作伙伴。某知名电子元件生产商在引入海德汉iTNC 530数控系统后,成功实现了微型电子元件的精密加工,将加工精度提升至微米级,大大提高了产品的质量和市场竞争力。这一合作不仅巩固了海德汉在高精度加工领域的领先地位,也推动了电子行业向更高精度、更高质量方向发展。

Alpha Wire公司的发展小趣事

随着电子行业的快速发展,对高精度电子元件的需求日益增长。海德汉公司凭借其iTNC系列数控系统的高精度控制能力,成为众多电子元件制造商的首选合作伙伴。某知名电子元件生产商在引入海德汉iTNC 530数控系统后,成功实现了微型电子元件的精密加工,将加工精度提升至微米级,大大提高了产品的质量和市场竞争力。这一合作不仅巩固了海德汉在高精度加工领域的领先地位,也推动了电子行业向更高精度、更高质量方向发展。

AVG [AVG Semiconductors(HITEK)]公司的发展小趣事

随着技术的不断进步和产品的日益成熟,AVG开始积极寻求市场扩张的机会。公司先后进入多个国家和地区,通过设立分支机构和与当地企业建立合作关系,逐步扩大了市场份额。同时,AVG还注重品牌建设和提升,通过参加国际电子展会、举办技术研讨会等活动,提高了品牌知名度和影响力。这些举措使得AVG在全球电子行业中的地位逐渐提升。

ASC Capacitors公司的发展小趣事

随着公司规模的不断扩大和产品质量的不断提升,ASC Capacitors开始积极拓展市场。公司不仅在国内市场上取得了显著成绩,还成功打入国际市场,产品远销海外。通过与全球知名企业的合作,ASC Capacitors进一步提升了品牌知名度和影响力,成为了电容器行业的佼佼者。

问答坊 | AI 解惑

s3c2410 触摸屏驱动

s3c2410触摸屏驱动中,硬件电路上XPOS ,YPOS分别接到了AIN2 AIN0上,是不是就不能使用tc  adc中断?也不能使用自动转化和序列转换模式? 这样的话,是不是只能普通ad模式转换?…

查看全部问答>

串口升级的问题

情况是这样的:主板有两个串口,一个接到机箱(也就是我们作为升级的串口1),另一个串口2与子板上CPU串口连在一起。现在我想通过主板的串口1找升级文件,然后通过主板串口2与子板的串口数据通信来升级子板的程序。主板上串口1接受到的数据可以直接 ...…

查看全部问答>

搞嵌入式开发需要有电路基础吗?

搞嵌入式开发需要有电路基础吗?占开发技术的百分之多少?学软件的可以做嵌入式吗?…

查看全部问答>

wince 键盘驱动的疑问, 扫描码转键值后,进入系统后发生变化

wince 6.0 + pxa270 一个简单矩阵键盘, 共6个按键 在键盘驱动的 KeyButton_GetEventEx2(UINT rguiScanCode[16], BOOL rgfKeyUp[16]) 函数中 分别映射为 VK_F1, VK_F2, VK_F3,VK_F4, VK_F5 通过打印消息分别是 vk_f1, vk_f2 vk_f3 vk_f4 vk_f5 ...…

查看全部问答>

[求助]有人做过水质采样器吗,如何做啊?

我最近在做这个东西,有人有资料可以告诉我吗,谢谢…

查看全部问答>

STM32跟AD73360通讯

我看到一篇文章《基于STM32的三相多功能电能表解决方案》 我以前也收集过这方面的资料,感觉不可以用,那位做过,可以用SPI通讯吗?…

查看全部问答>

Mos管导通问题

本帖最后由 paulhyde 于 2014-9-15 04:02 编辑 N沟道mosfet正常Vgs=2.5V导通,为什么在Vgs之间通100mv的交流信号就可以直接导通了?   S端输出的信号 和 g端地输入信号差不多。  …

查看全部问答>

共模与传导不能同时好?

求助专家,急!!!     小功率隔离型开关电源怎么同时解决共模和传导问题啊,要求是不能外加元件,我改了好几次变压器的绕法,最好的一次就是共模620mV,很好了,可传导却不行,余量不够6dB,改了那么多次都是这个好那个坏,那个好这个坏 ...…

查看全部问答>

可恶的STM,我就是要用AVR 代码!

可恶的STM,我就是要用AVR 代码,我喜欢汇编代码!! 据传闻Xmega A3U价格暴跌。…

查看全部问答>

关于S3C2416 的Vxwork BSP

请问哪里有S3C2416的Vxwork BSP下载?到处都没找到可以提供Vxwork BSP的开发板。…

查看全部问答>