OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子新作:阿波罗STM32F767&F429&探索者STM32F4开发板&赶快来下载资料哦。

查看: 1076|回复: 6

STM32 L011D3P6 的EEPROM 读写函数

[复制链接]

  离线 

10

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
137
金钱
137
注册时间
2017-12-12
在线时间
8 小时
发表于 2018-1-30 12:41:09 | 显示全部楼层 |阅读模式
1金钱
#define EEPROM_BASE_ADDR        0x08000000        
#define EEPROM_BYTE_SIZE        0x0800  
#define PEKEY1        0x89ABCDEF              
#define PEKEY2        0x02030405            
#define EN_INT              __enable_irq();         
#define DIS_INT             __disable_irq();      


void EEPROM_ReadBytes(unsigned int Addr,char *Buffer, short Length)
{
        char *wAddr;
        wAddr=(char *)(EEPROM_BASE_ADDR+Addr);
        while(Length--)
        {
                 *Buffer++=*wAddr++;
        }        
}


void EEPROM_WriteBytes(unsigned int Addr,char *Buffer,short Length)
{
        char *wAddr;
        wAddr=(char *)(EEPROM_BASE_ADDR+Addr);
        DIS_INT
        FLASH->PEKEYR=PEKEY1;                    //unlock
        FLASH->PEKEYR=PEKEY2;
        while(Length--)
        {
                *wAddr++=*Buffer++;
                while(FLASH->SR&FLASH_SR_BSY);
        }
        FLASH->PECR|=FLASH_PECR_PELOCK;
        EN_INT
}


为什么写不进去啊


最佳答案

查看完整内容[请看2#楼]

这是L051的,查下011的的对应的地址 #define EEPROM_BASE_ADDR 0x08080000 #define EEPROM_BYTE_SIZE 0x0800
回复

使用道具 举报

  离线 

3

主题

50

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1861
金钱
1861
注册时间
2016-9-7
在线时间
221 小时
发表于 2018-1-30 12:41:10 | 显示全部楼层
这是L051的,查下011的的对应的地址
#define EEPROM_BASE_ADDR        0x08080000
#define EEPROM_BYTE_SIZE        0x0800
回复

使用道具 举报

  离线 

493

主题

9万

帖子

30

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
126697
金钱
126697
注册时间
2010-12-1
在线时间
1096 小时
发表于 2018-1-31 02:05:40 | 显示全部楼层
没搞过这个芯片,你参考下我们例程,然后仔细看数据手册吧
回复

使用道具 举报

  离线 

10

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
137
金钱
137
注册时间
2017-12-12
在线时间
8 小时
 楼主| 发表于 2018-1-31 16:43:46 | 显示全部楼层
lrzxc 发表于 2018-1-30 12:41
这是L051的,查下011的的对应的地址
#define EEPROM_BASE_ADDR        0x08080000
#define EEPROM_BYTE_S ...

datasheet 上 EEPROM 地址范围为 0X08080000--0X080801FFF
回复

使用道具 举报

  离线 

10

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
137
金钱
137
注册时间
2017-12-12
在线时间
8 小时
 楼主| 发表于 2018-1-31 16:44:51 | 显示全部楼层
正点原子公众号
正点原子 发表于 2018-1-31 02:05
没搞过这个芯片,你参考下我们例程,然后仔细看数据手册吧

好的
回复

使用道具 举报

  离线 

3

主题

50

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1861
金钱
1861
注册时间
2016-9-7
在线时间
221 小时
发表于 2018-1-31 17:10:17 | 显示全部楼层
GuDuDeRen 发表于 2018-1-31 16:43
datasheet 上 EEPROM 地址范围为 0X08080000--0X080801FFF

你的帖子里是
#define EEPROM_BASE_ADDR        0x08000000
回复

使用道具 举报

  离线 

10

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
137
金钱
137
注册时间
2017-12-12
在线时间
8 小时
 楼主| 发表于 2018-2-1 13:53:51 | 显示全部楼层
lrzxc 发表于 2018-1-31 17:10
你的帖子里是
#define EEPROM_BASE_ADDR        0x08000000

改了 现在问题解决了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则




QQ|联系我们|手机版|官方淘宝店|新浪微博|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2018-5-26 15:49

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表
/* */