21ic电子技术开发论坛
标题:
STM32 L0 的EEPROM 的读写函数为什么写不进去啊?
[打印本页]
作者:
supernan
时间:
2020-10-11 22:50
标题:
STM32 L0 的EEPROM 的读写函数为什么写不进去啊?
#define EEPROM_BASE_ADDR 0x08000000
#define EEPROM_BYTE_SIZE 0x0800 //¶¨ÒåEEPROMµÄÆðʼλÖúʹóС
#define PEKEY1 0x89ABCDEF //FLASH_PEKEYR
#define PEKEY2 0x02030405 //FLASH_PEKEYR ½âËøÃüÁî
#define EN_INT __enable_irq(); //ϵͳ¿ª¾ÖÖжÏ
#define DIS_INT __disable_irq(); //ϵͳ¹Ø±ÕÈ«¾Ö
void EEPROM_ReadBytes(unsigned int Addr,char *Buffer, short Length)//°´ÕÕ×Ö½Ú¶Á³öEEPROMµÄÊý¾Ý
{
char *wAddr;
wAddr=(char *)(EEPROM_BASE_ADDR+Addr);
while(Length--)
{
*Buffer++=*wAddr++;
}
}
void EEPROM_WriteBytes(unsigned int Addr,char *Buffer,short Length)//°´ÕÕ×Ö½ÚÊý¾Ýдµ½EEPROM
{
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
}
为什么写不进去啊?
作者:
zhanglli
时间:
2020-10-11 22:53
EEPROM的基地址好像不对,你查下datasheet看看吧
作者:
zhuhuis
时间:
2020-10-11 22:58
/*------------------------------------------------------------
Func: EEPROM Read
Note:
-------------------------------------------------------------*/
void EEPROM_Read(uint16_t Addr,uint8_t *Buffer,uint16_t Length)
{
uint8_t *wAddr;
HAL_FLASHEx_DATAEEPROM_Unlock();
wAddr=(uint8_t *)(DATA_EEPROM_BASE+Addr);
while(Length--){
*Buffer++=*wAddr++;
HAL_FLASHEx_DATAEEPROM_Lock();
}
}
/*------------------------------------------------------------
Func: EEPROM Write
Note:
-------------------------------------------------------------*/
void EEPROM_Write(uint16_t WriteAddr,uint8_t *pBuffer,uint16_t NumToWrite)
{
uint16_t t;
HAL_FLASHEx_DATAEEPROM_Unlock();
for(t = 0;t < NumToWrite;t++)
{
HAL_FLASHEx_DATAEEPROM_Program(FLASH_TYPEPROGRAMDATA_BYTE,DATA_EEPROM_BASE + WriteAddr + t,*(pBuffer + t));
}
HAL_FLASHEx_DATAEEPROM_Unlock();
}
作者:
wenfen
时间:
2020-10-11 23:03
有用,谢谢
作者:
supernan
时间:
2020-10-11 23:10
搞定了,呵呵,犯了低级错误……
作者:
有何不可0365
时间:
2020-10-31 23:40
ST又涨价了吗?
作者:
有何不可0365
时间:
2020-10-31 23:41
EEPROM的基地址不对是吗?
作者:
isageko
时间:
2020-11-1 22:45
所以是什么错误啊 我没看出来哪里有问题
作者:
凯复Kane
时间:
2020-11-1 23:00
我也不是很了解 楼主解决了跟我讲一声
欢迎光临 21ic电子技术开发论坛 (https://bbs.21ic.com/)
Powered by Discuz! X3.5