hhhhhhhaa 发表于 2020-10-19 17:29:26

小歆-2051663 发表于 2020-10-9 15:16
我也感觉是地址错误,能否提供一下你读写的Flash地址。

好的,我读写的地址是0x08000000+14*1024

hhhhhhhaa 发表于 2020-10-19 17:30:20

小歆-2051663 发表于 2020-10-9 15:16
我也感觉是地址错误,能否提供一下你读写的Flash地址。

因为030的内存是16K 我读写第14页应该是没有影响的,程序只有10K大小

hhhhhhhaa 发表于 2020-10-19 17:31:48

wangzhao123 发表于 2020-10-7 16:05
读取FLASH的源代码没问题,看你读取的是否是同一个地址的数据

0x08000000+14*1024读写的地址都是这个,应该是没错的啊,我的程序只有10K大小,030的内存是16K 我读写第14页应该没错啊

butterflyspring 发表于 2020-10-20 16:47:13

检查一下FLASH_ProgramHalfWord(WriteAddr,pBuffer);中有没有等待操作完成的判断。

hhhhhhhaa 发表于 2020-10-23 15:23:06

butterflyspring 发表于 2020-10-20 16:47
检查一下FLASH_ProgramHalfWord(WriteAddr,pBuffer);中有没有等待操作完成的判断。

FLASH_Status FLASH_ProgramHalfWord(uint32_t Address, uint16_t Data)
{
FLASH_Status status = FLASH_COMPLETE;

/* Check the parameters */
assert_param(IS_FLASH_PROGRAM_ADDRESS(Address));

/* Wait for last operation to be completed */
status = FLASH_WaitForLastOperation(FLASH_ER_PRG_TIMEOUT);

if(status == FLASH_COMPLETE)
{
    /* If the previous operation is completed, proceed to program the new data */
    FLASH->CR |= FLASH_CR_PG;

    *(__IO uint16_t*)Address = Data;

    /* Wait for last operation to be completed */
    status = FLASH_WaitForLastOperation(FLASH_ER_PRG_TIMEOUT);
   
    /* Disable the PG Bit */
    FLASH->CR &= ~FLASH_CR_PG;
}

/* Return the Program Status */
return status;
}

hhhhhhhaa 发表于 2020-10-23 15:27:24

butterflyspring 发表于 2020-10-20 16:47
检查一下FLASH_ProgramHalfWord(WriteAddr,pBuffer);中有没有等待操作完成的判断。

写入后不断电的情况下可以保存的住,断电后数据就丢失了,不知道是什么原因

hhhhhhhaa 发表于 2020-10-23 15:28:35

小歆-2051663 发表于 2020-10-9 15:16
我也感觉是地址错误,能否提供一下你读写的Flash地址。

您看到了吗?

hhhhhhhaa 发表于 2020-10-24 10:33:20

自己回复,防尘贴

hhhhhhhaa 发表于 2020-10-26 16:29:03

butterflyspring 发表于 2020-10-20 16:47
检查一下FLASH_ProgramHalfWord(WriteAddr,pBuffer);中有没有等待操作完成的判断。

您看这有什么问题吗

hhhhhhhaa 发表于 2020-10-27 14:47:51

还是没有人知道吗?
页: 1 [2] 3 4
查看完整版本: STM32F030 FLASH存储问题