打印
[STM8]

stm8种如何将EEPROM中数据拷贝到RAM中?

[复制链接]
5200|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dzguang|  楼主 | 2012-11-29 11:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题,如何将EEPROM中保存的数据,在上电时将固定的两块数据从EEPROM中读取到指定的RAM地址中呢?恳请各位不吝赐教啊!
沙发
dzguang|  楼主 | 2012-11-29 12:52 | 只看该作者
走过的路过的,留个脚印呢!!

使用特权

评论回复
板凳
dzguang|  楼主 | 2012-11-30 10:51 | 只看该作者
来个人结贴给分啦!

使用特权

评论回复
地板
明月小厨| | 2012-11-30 11:45 | 只看该作者
读EEPROM的数据即可;
印象中操作EEPROM的程序需要在RAM中运行,也许只是写入时有此要求,说明EEPROM并非独立的外设,有可能就是内部的FLASH;
如果是内部FLASH地址区间内可见,直接读也许可行,否则要借助相关的寄存器来操作;
手册我还没看,具体什么情况要进一步确认.

使用特权

评论回复
5
明月小厨| | 2012-11-30 11:59 | 只看该作者
本帖最后由 明月小厨 于 2012-11-30 12:02 编辑

刚看了一下,字节编程时直接操作,块编程在RAM中运行;而读取EEPROM的数据真的可以直读;
这不是EEPROM,这就是FLASH啊;太好了,只是EEPROM有多大不知道,要是有上百K字节就好了;
印象中只有可怜的一点点大.

取个名子叫EEPROM骗人,其实就是FLASH;
为什么字节编程时可以直接进行,而块操作时却要在RAM中执行代码?
如果说内部总线有冲突,那字节编程也同样有冲突的啊.

使用特权

评论回复
6
明月小厨| | 2012-11-30 12:07 | 只看该作者
本帖最后由 明月小厨 于 2012-11-30 12:11 编辑

我已经很久没搞C,但思路我知道的,定义一个指向char类的指针(指针是整型16位,就是地址),把指针初始化(赋值为你的地址块首址);
然后循环:读一个数据,指针往下移;很方便是吧.

另一个方法:你声明一个数组,这个方法不太方便就不说了;

使用特权

评论回复
7
明月小厨| | 2012-11-30 12:26 | 只看该作者
char temp;
char *ptr_eeprom;
ptr_eeprom = eeprom_add;
temp = *ptr_eeprom;

使用特权

评论回复
8
明月小厨| | 2012-11-30 12:35 | 只看该作者
char temp;
char *ptr_eeprom;
ptr_eeprom =(char *)0x4000; (强制类型转换后编译通过了)太久没弄了,不熟悉了.
temp = *ptr_eeprom;

使用特权

评论回复
9
明月小厨| | 2012-11-30 12:39 | 只看该作者
IAR竟然不打招呼,擅自把我的temp给优化掉了.

使用特权

评论回复
10
明月小厨| | 2012-11-30 12:44 | 只看该作者
本帖最后由 明月小厨 于 2012-11-30 12:53 编辑

char temp ;
int eeprom_add;

eeprom_add = 0x4000;            //地址
temp = (char *)eeprom_add;   //读数据;

...
//ram区域你定义为数组比较好些,这样具体放在什么地方你不用去操心;
数据倒来倒去有意思吗?放在哪不一样吗?

使用特权

评论回复
11
明月小厨| | 2012-11-30 13:21 | 只看该作者
本帖最后由 明月小厨 于 2012-11-30 13:40 编辑

void my_copy(char *ptr_ram,int i)
{
char *ptr_eeprom;
ptr_eeprom =(char *)0x4000;        

//你的EEPROM在哪里,地址你自己确认;我以为是0x4000;但STM8我还没见过,不确定.
//i是你要倒的数据块长度;不能为零;(没做安全检查)
//ptr_ram是ram块的首地址;你可以定义数组,把数组首址传进来;首址是多少由编译器帮你自动处理;
do
    {
      *ptr_ram = *ptr_eeprom;
       ptr_eeprom++;
       ptr_ram++;
     }
while(i--);
}
行不行你自己试试吧,我没试过.

使用特权

评论回复
12
dzguang|  楼主 | 2012-12-3 17:15 | 只看该作者
哥们,你真乃神人也!

使用特权

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

本版积分规则

19

主题

292

帖子

5

粉丝