[STM8] 怎样操作STM8的EEPROM?比如读某个字节,写某个字节

[复制链接]
6579|10
 楼主| ZRL700424 发表于 2009-6-28 10:15 | 显示全部楼层 |阅读模式
STM8的资料看得头大,一会这份资料,一会那份资料,但都找遍了,也没看到与EEPROM相关的寄存器
香水城 发表于 2009-6-28 18:11 | 显示全部楼层

怎样操作STM8的EEPROM,请参考STM8S技术参考手册

STM8S中操作Flash和EEPROM使用同一组寄存器,操作方法请参考STM8S技术参考手册的第4章:



STM8S技术参考手册(英文版)

STM8S技术参考手册(中文版)
ddmking 发表于 2009-6-30 15:39 | 显示全部楼层

可以字节读写

字节操作可以直接读写。

单我做页编程的时候,总写不了??
汉之云 发表于 2009-6-30 15:43 | 显示全部楼层

页编程要放在RAM里运行

同时要注意页的大小
ddmking 发表于 2009-6-30 16:01 | 显示全部楼层

RAM里运行??

RAM里运行程序 如何操作?
汉之云 发表于 2009-6-30 16:40 | 显示全部楼层

简言之

把程序copy到RAM中某地址去,然后PC跳到该地址,运行完再跳回来
walnutcy 发表于 2009-6-30 20:51 | 显示全部楼层

页写是个很大的问题,一般情况没有必要,

做IAP升级时就发现了这个问题
yumeinian 发表于 2010-1-14 17:18 | 显示全部楼层
本帖最后由 yumeinian 于 2010-1-14 17:21 编辑

typedef unsigned long  u32;
typedef unsigned short u16;
typedef unsigned char  u8;
#define FLASH_RASS_KEY1 ((u8)0x56) /*!< First RASS key */
#define FLASH_RASS_KEY2 ((u8)0xAE) /*!< Second RASS key */

void FLASH_ProgramByte(u32 Address, u8 Data)
{
    *((@far u8*) Address) = Data;
}
main(){
FLASH_DUKR = FLASH_RASS_KEY2; /* Warning: keys are reversed on data memory !!! */
FLASH_DUKR = FLASH_RASS_KEY1;
FLASH_ProgramByte(0x4000, 0x33);
FLASH_ProgramByte(0x4001, 0x66);
FLASH_ProgramByte(0x4002, 0x88);
FLASH_ProgramByte(0x4003, 0x99);}

第一次用STM8s103k,32pin.我是这么弄的,测试下可以,不知道是否曾在其他问题,大家指正,其中0x33,0x66,0x99,是要写入的数据
pkat 发表于 2010-1-14 19:42 | 显示全部楼层
一般情况下不用页写?
bili 发表于 2010-3-4 11:07 | 显示全部楼层
8楼正解,ST的标准驱动库里面也有详细源码
有意思 发表于 2010-3-5 23:19 | 显示全部楼层
用_fctcpy()函数
您需要登录后才可以回帖 登录 | 注册

本版积分规则

26

主题

675

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部