HC32F005C6PA内部FLASH读取的问题
本帖最后由 wuzhihuiqqyy 于 2024-8-6 17:37 编辑见附件图片 像是没有写成功,你解锁flash写保护没。 chenqianqian 发表于 2024-8-8 08:08
像是没有写成功,你解锁flash写保护没。
晚上我看下 写之前是否有先擦除 未擦除目标地址数据吧,写入数据之前,必须擦除对应地址的数据才能正常写入。若未擦除直接覆盖写入,会导致写入失败,读取时出现不一致的情况。 写入地址非对齐,遵循32位(4字节)地址对齐原则,写入地址必须是4的倍数。若写入地址为非对齐,会出现编程对齐错误,导致写入和读取不一致。 操作期间总线被占用,在进行写或擦除操作时,总线处于阻塞状态,此时读取Flash数据会出现失败,导致读取的数据与写入的不一致。 电压不稳定,处于外界干扰较大的环境,供电可能暂降,对Flash进行操作时,若低于特定电压会出现编程失败,从而导致写入和读取不一致。 中断影响,在写Flash的时候,如果有中断触发,很可能导致写失败,进而出现写入和读取不一致的问题。 在进行写入操作之前,先擦除对应地址的数据。通常擦除数据是以页、扇区为单位,写入某个地址数据前,需先读出整页(或扇区)数据并缓存,再擦除整页,最后写入新数据。 通过“取余”判断地址,确保写入地址遵循32位(4字节)地址对齐原则,只能是4的倍数。 通过标志判断写/擦除操作是否完成,在操作完成后再进行读取操作,避免在总线阻塞状态下读取数据。 完善硬件电路,确保在操作Flash时电源稳定,避免在写入过程中断电或电压暂降。 在写Flash的时候,关闭中断,写完再打开中断,防止中断触发导致写失败。
页:
[1]