STM8 EEPROM心得

发布者:MysticalSoul最新更新时间:2020-09-07 来源: eefocus关键字:STM8  EEPROM  心得 手机看文章 扫描二维码
随时随地手机看文章

对于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)

    {

        ;

    }

}


关键字:STM8  EEPROM  心得 引用地址:STM8 EEPROM心得

上一篇:提高stm32f103c8t6的PWM精度
下一篇:STM8驱动HX711

推荐阅读最新更新时间:2024-11-05 20:20

集成STM8 MCU内核 ST推业界首款通用照明控制器
意法半导体公司推出新款业界独有的照明控制器芯片,让家用、商用和公共照明系统变得更加节能环保、经济效益更高。作为全球首款为照明和电源应用专门优化的可编程数字控制器,新产品STLUX385(Masterlux平台)可简化传统的功率转换拓扑设计,加快创新的照明系统开发速度。 据悉,STLUX385集成了经市场验证的高成本效益STM8微控制器内核和一套意法半导体独有的外设,以简化照明系统电源和灯数字控制器的设计,这对于LED灯、荧光灯和HID(氙气灯)照明系统的性能起到至关重要的作用。受到所使用的照明技术、输入电源(交流或直流)、调光要求和安全性或可靠性问题等多种因素的影响,现有的和未来的照明系统需要很多不同的功率转换和控制拓扑,ST
[单片机]
单片机硬件心得
这两天做了一套51单片机的驱动板。碰到了一些问题,总结一下经验吧。 上拉:单片机P0口接一个电阻到电源5V上。当P0口置0时,电流从5V经过电阻进去单片机。这时候经过51单片机的P0口的电流大约20MA左右吧,用来驱动小功率设备,或者光耦。 下拉:输出端接到电源地上。目前还没碰到过。查资料说是减少干扰用的。 MAX232CEP:C是指商业用,E是16脚的,P是DIP封装的。其中电容按照技术手册上来说是IUF的电解电容。我这边焊接的是0.1的瓷片电容。经试验没有问题。中间有四个电容是为芯片内的升压电路提供电源的,一个是接在正负电源之间,稳压和保护的作用。当电容选择较小时,升压电路动力不足。出现的问题就是,传输距离和
[单片机]
单片机硬件<font color='red'>心得</font>
PIC单片机的学习心得
  PIC16F616是一款14引脚、8位的CMOS单片机。采用精简指令集,仅有35条指令,由于采用了数据总线和指令总线分离的哈佛总线结构,使得除少量指令不是单周期之外,大部分的指令都是单周期指令。这样有利于提高单片机的运行速度和执行效率。   PIC16F616这款单片机供电电压可以在2V到5。5V之间,内部集成了一个RC振荡器,频率可以配置成8MHZ或者4MHZ,也可以用外部晶振提供时钟。内部集成有AD转换、比较器等硬件模块,还具有上电复位、欠压复位、看门狗、代码保护等功能。三个定时器、PWM发生器等可以由用户编程。下面我来一一介绍关于PIC单片机的这些模块和功能。  存储器   PIC16F616分为程序存储其和数据存
[单片机]
奥地利微电子推带Hi-EPR EEPROM的8位数字电位器 可进行10M写入
采用独特的Hi-EPR EEPROM,AS1506可提供卓越的直流性能,以及150年数据保持时间和10M写入次数等世界领先性能 中国—— 全球领先的通信、工业、医疗及汽车应用集成电路设计者和制造商奥地利微电子公司(SWX股票代码:AMS)今天推出256抽头、SPI接口、非易失数字电位器AS1506,可提供10、50和100kΩ电阻,进一步扩展了数字电位器产品系列。 AS1506的最大待机电流为500nA,包括CMOS写操作电流在内的最大工作电流只有200μA,因此是低功耗应用的理想选择。AS1506采用2.7至 5.5V单电源工作,端到端电阻的温度系数为90ppm/°C。AS1506具有±0.5LSB(最大值)的积分非线性(
[新品]
51单片机——EEPROM
24C02:256 个字节的 EEPROM。一般情况下,EEPROM 拥有 30 万到 100 万次的寿命。基于 I2C 通信协议的器件。I2C 是一个通信协议,它拥有严密的通信时序逻辑要求,而EEPROM 是一个器件,只是这个器件采样了 I2C 协议的接口与单片机相连而已,二者并没有必然的联系,EEPROM 可以用其它接口, I2C 也可以用在其它很多器件上。 1、EEPROM写数据流程 第一步,首先是 I2C 的起始信号,接着跟上首字节,也就是我们前边讲的 I2C 的器件地 址,并且在读写方向上选择“写”操作。 第二步,发送数据的存储地址。24C02一共 256 个字节的存储空间,地址从 0x00~0xFF,我们想把数据存
[单片机]
STM8使用SPI通信需要注意的几个问题
概述: 在使用STM8L101F3单片机,SPI通信读取三轴传感器ADXL362数据时,出现了一系列的问题,在这里做个笔记,也希望可以给大家一个小的参考。 问题一: 在SPI初始化过程中,没有初始化MISO,MOSI,SCLK三个引脚,导致在通信过程中写数据读数据出现问题。所以在这里贴出测试后可以正常运行的SPI初始化代码。(STM8L101F3,使用官方标准库) #include stm8l10x.h #include stm8l10x_spi.h #include stm8l10x_gpio.h /***************************SPI相关定义*****************
[单片机]
CPU学习心得续集1
痴人说梦继续。 计算机工作速度是很快的,每运行一步指令大概也就是几亿分之一秒。即便是51单片机,也能达到千万分之一秒,如果我们的思绪跟着计算机跑,会被累死的,好囧! 不如我们用慢动作将整个工作过程放慢,一点点体会它到底是怎么工作的,至于多慢,一个小时一步可以了吧?呵呵,随便了,能理解了就继续下一步。 以单片机为例,通电后,系统在第一个周期内干什么呢? 单片机内部有很多部门,我们假设它就是一个工厂,工厂的中间是一条宽阔的大路,路两边是各个车间和管理部门,然后在厂区内安装了一个所有人都能听到的大喇叭,对所有部门发号施令。 好了,零号指挥员开始喊了:第一步,指针指向地址0000H,其它部门
[单片机]
STM8单片机按键检测电路设计
硬件环境采用STM8SF103,电压为3.3V。 电路需要注意的是STM8SF103这系列的IO作为输入口时只能是上拉输入和悬浮输入,虽然是弱上拉,在VCC为3.3V电压时,仍然能够被拉升至3.0V左右。 所以按键检测电路IO口一端需要接地,而不是外接上拉。悬浮方式下IO仍然会有0.89V左右电压,读取对应的IO寄存器IDR,仍然处于逻辑高电平状态。 软件代码相对很简单,只需要将IO口设置成上拉输入即可。采用轮询代码如下: //初始化只需要设置IO口模式即可。 GPIO_Init(KEY2_PORT,KEY2_PIN,GPIO_MODE_IN_PU_NO_IT);//上拉输入,不产生中断 //按键检测部分 /* #
[单片机]
<font color='red'>STM8</font>单片机按键检测电路设计
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved