当前位置:首页 > 单片机 > 单片机
[导读]对于STM8S103F3这款芯片来讲,存在640个字节的EEPROM,当然如果有外部EEPROM,自然是不会使用到内部的EEPROM的。但小东西也有大用途,例如做无线应用时,减少成本的情况下,还能保存一些特定设置,如:休眠时间,工作

对于STM8S103F3这款芯片来讲,存在640个字节的EEPROM,当然如果有外部EEPROM,自然是不会使用到内部的EEPROM的。但小东西也有大用途,例如做无线应用时,减少成本的情况下,还能保存一些特定设置,如:休眠时间,工作频率,输出功率,密码等。

下图所示,STM8S系列EEPROM大小一目了然。


操作EEPROM自然分成读操作和写操作,先查看STM8S的手册描述如下:

中文手册上的存储器组织结构存在错误,如:


对应英文手册如:


对应的代码如下;

char*p=0x4000;

u8a,b,c;

a=*p;

b=*p++;

c=*p++;

就像C8051操作外部数据存储一样,只需要简单通过指针指向0x4000位置即可。



写操作,则有些小麻烦,主要是STM8S的存储区安全机制问题。

中文手册描述:

英文手册描述:



u8write_header(header*h)

{

u8*p=(u8*)EP_HEADER_ADDR;//EP_HEADER_ADDR0x4000

if(!h)

return0;

/*操作EEPROM,需要先进行解锁*/

FLASH_DUKR=0xAE;//注意这里不能断点调试,否则会造成内部不同步,FLASH解锁失败

FLASH_DUKR=0x56;

FLASH_CR2=0x00;

FLASH_NCR2=0xFF;

if(!(FLASH_IAPSR&0x08))//检测对应的位是否解锁

return0;

_memcpy(p,(u8*)h,sizeof(header));

FLASH_IAPSR=(u8)(~0x08);//重新上锁

return1;

}


执行解锁后,操作也是非常简单的。



总结:

1、STM8S内部EEPROM使用还是挺方便的,只有写操作时需要解锁。

2、中文手册很多时候会存在错误,只能作为快速浏览用,具体应用还得参考官方英文手册。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭