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
还是没有人知道吗?