打印
[STM8]

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

[复制链接]
5489|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里运行

同时要注意页的大小

使用特权

评论回复
5
ddmking| | 2009-6-30 16:01 | 只看该作者

RAM里运行??

RAM里运行程序 如何操作?

使用特权

评论回复
6
汉之云| | 2009-6-30 16:40 | 只看该作者

简言之

把程序copy到RAM中某地址去,然后PC跳到该地址,运行完再跳回来

使用特权

评论回复
7
walnutcy| | 2009-6-30 20:51 | 只看该作者

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

做IAP升级时就发现了这个问题

使用特权

评论回复
8
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,是要写入的数据

使用特权

评论回复
9
pkat| | 2010-1-14 19:42 | 只看该作者
一般情况下不用页写?

使用特权

评论回复
10
bili| | 2010-3-4 11:07 | 只看该作者
8楼正解,ST的标准驱动库里面也有详细源码

使用特权

评论回复
11
有意思| | 2010-3-5 23:19 | 只看该作者
用_fctcpy()函数

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

26

主题

677

帖子

0

粉丝