记一次更换大容量STM32芯片后Flash读写异常问题
背景
由于项目的更新,主控芯片由RBT6更换为RCT6,系统的参数修改保存在片上Flash中,更换新板子之后,调试发现系统参数读取错乱;
对系统参数进行修改,重新保存,发现一部分数据正确,一部分数据错误,多次尝试,现象一致;
读取Flash的数据,查看对应地址保存的数据,是修改后保存的值;
解决方法
很容易定位,问题的关键在对Flash的操作;
而两个板子最根本的变化在于更换了芯片;
查阅资料得知,STM32F103RCT6的Flash一页为2kb;
STM32F103系列参考:
小容量产品主存储块1-32KB, 每页1KB。
中容量产品主存储块64-128KB, 每页1KB。
大容量产品主存储块256KB以上, 每页2KB。
互联型产品主存储块256KB以上, 每页2KB。
所以在进行Flash读写操作时,在对页的擦除和访问时,对应页的起始地址一定不能错。