没问题吧
/* 芯片内部EEPROM地址数据写操作 */
bool sST_EEPROM_WriteBytes(uint16_t addr, uint8_t *buffer, uint16_t length)
{
bool result = true;
uint8_t *address;
if( (addr + length) > ST_EEPROM_BYTE_SIZE)
{
return false;
}
address = (uint8_t *)(ST_EEPROM_BASE_ADDR + addr);
DIS_INT();
/* unlock */
FLASH->PEKEYR = FLASH_PEKEY1;
FLASH->PEKEYR = FLASH_PEKEY2;
while(FLASH->PECR & FLASH_PECR_PELOCK);
for(; length > 0; length--)
{
*address++ = *buffer++;
while(FLASH->SR & FLASH_SR_BSY);
}
/* lock */
FLASH->PECR |= FLASH_PECR_PELOCK;
EN_INT();
return result;
}
你试试这样的 对于EEPROM的编程,手册是有一定要求的,不应该连续写入的。 pxforever 发表于 2020-4-2 20:23
可以了?
可以了 顶一顶
页:
1
[2]