历史上的今天
返回首页

历史上的今天

今天是:2024年12月03日(星期二)

正在发生

2019年12月03日 | stm8 内部EEPROM

2019-12-03 来源:eefocus

第一步:EEPROM介绍



数据EEPROM(DATA)区域可用于存储用户具体项目所需的数据。默认情况下, DATA区域是写保护的,这样可以在主程序工作在IAP模式时防止DATA区域被无意地修改。只有使用特定的MASS密钥才能对DATA区域的写保护解锁(请参考对DATA区域的写操作)。请参考4.4存储器组织结构来了解不同的STM8S MCU的DATA区域大小。

第二步:寄存器说明




第三步:具体实现


/*EEPROM初始化*/

void Eeprom_Init(void)

{

  FLASH_CR1 |= 0x01;    //编程时间固定位标准编程时间tprog

  FLASH_CR2 |= 0x40;    //字编程操作被使能

  FLASH_NCR2 = 0xBF;  //字编程操作被使能

  do

  {

    FLASH_DUKR = 0xAE;    // 写入第一个密钥

    FLASH_DUKR = 0x56;     // 写入第二个密钥   这里和手册是反的

  } while((FLASH_IAPSR & 0x08) == 0);  // 若解锁未成功,则重新再来

}

/*向EEPROM某一地址写一个8位数据*/

void Eeprom_Write(u16 addr,u8 dat)  //EEPROM地址范围0~1023

{

  u8 *p;

  p = (u8*)(0x4000+addr);  // 指针p指向芯片内部的EEPROM第一个单元

  *p = dat;     // 写入第一个字节

}

/*从EEPROM某一地址读数据,返回一个8位数据*/

u8 Eeprom_Read(u16 addr)

{

  u8 *p;

  p = (u8 *)(0x4000+addr);

  return *p;

}

int main( void )

{

  u8 temp;

  System_Init();  //系统时钟初始化

  Gpio_Init();    //LED指示灯初始化

  Eeprom_Init();  //EEPROM初始化

  while (1)

  {

    Eeprom_Write(0,5);

    delay_ms(1);

    temp = Eeprom_Read(0);

    if(temp == 5)   //如果读取到的数据时5 则PE5口的LED取反

    {

      temp = 0;    //temp清零

      PE_ODR ^= 0x20;  //PE5口的LED取反

    }

    delay_ms(400);  //延时400ms

  }

}

 

至此,stm8的EEPROM介绍完毕。是不是操作很简单,在某种程度上比STC单片机的操作还要简单。

推荐阅读

史海拾趣

辰颐电子公司的发展小趣事

在辰颐电子公司的发展历程中,品质和创新一直是其核心竞争力。公司始终坚持对产品品质的严格把控,从原材料采购到生产流程,再到售后服务,都力求做到精益求精。同时,公司还注重技术创新和研发投入,不断推出具有竞争力的新产品,满足市场不断变化的需求。这种品质与创新的双轮驱动模式,使辰颐电子在激烈的市场竞争中脱颖而出。

远东福斯特公司的发展小趣事

辰颐电子公司成立于XXXX年,由一群热衷于电子技术的年轻人共同创立。他们看到了电子行业巨大的市场潜力和技术革新的重要性,决定投身于这一领域。初创时期,公司面临着资金短缺、技术瓶颈和市场竞争等多重挑战。然而,他们凭借对技术的执着追求和对市场的敏锐洞察,成功研发出了一款具有创新性的电子产品,并迅速在市场上打开了局面。

Bipolar Integrated Technology Inc公司的发展小趣事

在市场竞争日益激烈的情况下,BIT意识到只有不断创新才能在行业中立足。于是,他们加大了在研发方面的投入,不断推出具有创新性的产品。其中,一款高性能、低功耗的双极型处理器成为了市场上的热销产品,引领了行业潮流。

BOT公司的发展小趣事

在20世纪80年代,马来西亚政府选择了BOT融资模式来建设一条重要的高速公路。经过与多家私人企业的谈判,最终与马来西亚联合工程公司达成了特许权合约。该公司负责筹集资金、建设并经营这条高速公路。在约定的特许经营期内,该公司通过收取过路费来回收投资和获取利润。该项目最终成功地促进了马来西亚的交通基础设施建设,并被国际金融界誉为BOT模式的成功案例。

由于篇幅限制,这里先为您提供两个故事作为示例。如果需要更多故事,可以继续输入请求。同时,请注意,以上故事均基于公开资料整理,仅供参考。

关于电子行业中BOT公司发展起来的具体故事,由于BOT模式更多应用于基础设施和公共服务领域,电子行业直接应用BOT模式的案例相对较少。但可以从电子行业的基础设施建设,如电子工业园区、数据中心等方面找到相关案例。如果需要,我可以进一步为您搜索和整理这方面的资料。

请注意,由于电子行业中BOT模式的应用相对较少,因此可能难以找到五个完全符合您要求的故事。如果您对电子行业中其他类型的公司或项目有兴趣,我也可以为您提供相关信息。例如,我可以分享一些关于电子行业中创业公司、技术创新公司或跨国企业的发展故事。这些故事可能涉及产品创新、市场拓展、技术合作等主题,同样具有启发性和趣味性。请告诉我您的具体需求,我将尽力提供帮助。

Fagor Electrónica公司的发展小趣事

进入1960年代,Fagor Electrónica迎来了其发展的第一个重大里程碑。1964年,公司成功启动了第一批硅整流器的制造。这一创新不仅提高了产品的性能,还为公司带来了更大的市场份额。硅整流器的推出标志着Fagor Electrónica在电子制造技术上的领先地位,也为其后续的发展奠定了坚实的基础。

Blaze Display Technology Co Ltd公司的发展小趣事

随着公司规模的不断扩大和市场份额的逐步提升,Blaze公司开始注重品牌建设和形象提升。通过加大广告宣传力度、提升客户服务质量、参与社会公益活动等方式,公司成功塑造了专业、可靠、创新的品牌形象。同时,公司还获得了多项行业荣誉和认证,进一步提升了品牌知名度和美誉度。

问答坊 | AI 解惑

Atheros communications (上海)高薪聘FPGA工程师

WiFi领域著名美资公司,具有竞争力的薪资。 招聘具有相当FPGA经验者,具有一定在IC公司工作的工作背景。 请发送简历至truelygoing@163.com。 工作地点:张江高科,距地铁站5分钟。 注:邮件标题请加上“[FPGA]”,谢谢。…

查看全部问答>

字符结构知识在车牌识别中的应用

汽车牌照识别是基于图像分割和图像识别理论,对含有汽车牌照的图像进行分析处理,从而确定汽车牌照在图像中的位置,并进一步提取和识别出文本字符。从不同车牌图像中分割出的字符图像各式各样,尺寸变化范围大,增加了识别的难度。尽管可以采用图像 ...…

查看全部问答>

旧电脑的电源用于LED驱动

现在很多旧的电脑电源都浪费了,其实用于驱动LED灯比较好。 但是如果直接用限流电阻的话,效率较低。由于电脑电源是开关电源,它先把220V 交流电整流变换成频率较高的振荡,然后整流成5V、 12V等,可在5V 、12V的次级线圈上,整流管之前引出高频的 ...…

查看全部问答>

【FPGA设计问题】Xilinx的IOBUF移植到Altera器件中,RTL代码如何修改?

Xilinx的IOBUF移植到Altera器件中,RTL代码如何修改? Xilinx的IOBUF移植到Altera器件中,RTL代码如何修改?本人以前使用的是Xilinx的FPGA,现在改用Altera的FPGA,不知道在对双向端口的控制在Altera中是怎样实现的,直接用下面的assign语句可以保 ...…

查看全部问答>

关于WINCE应用程序

我把整个的NAND FLASH读出来,然后通过一些办法把NK文件读出来了。。 但是我发现里面的都是系统文件,里面原先写入NAND FLASH文件的文件不能导出来。请问有什么办法把这些导出来。。 我写个示意图: 00000000H:xx xx xx xx xx xx xx xx xx xx ...…

查看全部问答>

GSM家居电器控制和远程数据采集大讨论,大家快来,有积分!!!

GSM家居电器控制和远程数据采集大讨论大串联,大家快来,有积分!!!…

查看全部问答>

一个傻问题,我是新手

我想问一下,烧写flash时的地址是谁确定的,我个人认为是bootloader确定的,可是如果修改该怎么修改呢?…

查看全部问答>

BSP的定制问题。怎么做自己需要的NK啊

我的开发板有做好的BSP包,我想屏蔽去掉一些驱动,写上自己的驱动,然后烧到板子里去,怎么做自己的镜像呢? 新手,求指教!!!! 我的驱动也写好了,屏蔽原有的驱动是不是直接删掉DRIVERS下的驱动文件就可以了呢???…

查看全部问答>

大家好,请问这里有过英蓓公司 EDUKIT-III ARM 开发箱子吗?加我QQ 请教、交流,学习,

大家好,请问这里有过英蓓公司 EDUKIT-III ARM 开发箱子吗?加我QQ 请教、交流,学习,…

查看全部问答>

TIMERB的应用!!急!!!

我想用定时器b来做iar里面定时器a的演示程序功能。但是我把程序改好之后,一直不能正常运行,从右面的disassem××y窗口里面看不到数据。请问为何。程序那里有错?谢谢大侠!!! #include <msp430x14x.h> void main(void) { P1DIR |= 0x0 ...…

查看全部问答>