大家好,我是单片机爱好者-MCU起航。这里说下使用库函数方式控制STM8S103F3P6实现片上EEPROM读写操作。
很多人接触EEPROM,都是从24C01或者24C02开始。因为早期的单片机资源比较匮乏,所以需要外接这些东西。但随着单片机的片上资源越来越丰富,在某些情况下,这些外接的EEPROM其实是可以省掉的。
相当一部分的单片机内部集成了一部分EEPROM,还有的单片机,内部虽然没有EEPROM,但是我们可以对它的FLASH进行操作,当成EEPROM去使用。当然,把flash当成EEPROM用的话,主要考虑的是寿命问题。因为flash的擦写次数只有几千次或者几万次,而EEPROM的擦写次数有几十万次。
好了,废话不多说,打开数据手册,找到EEPROM方面的简介:
我们可以看到两个信息:1、EEPROM的大小,有640字节;2、它的擦写次数可以达到30万次。
这里注意,不是说所有的STM8S的EEPROM的大小都是640字节!EEPROM的大小根据不同的单片机型号会有不同的调整,咱们这里使用的是最小的一种。如图:
从这个图中,我们得到两个信息:1、STM8S根据存储容量分为大、中、小三种器件;2、我们使用的是小容量,EEPROM分10页,一页64字节。
大小知道了,页数知道了。然后需要知道EEPROM的起始地址!在24C02里面,起始地址都是0,