2. 于是去查了一下芯片手册,查看对flash操作的哀求,个中提到,擦写flash的函数必须放在前32K才行。
3.看到这里,我去检讨了一下map文件,找到这个擦写函数的位置,在0x51a4,也便是在大概20.9K旁边的位置,还是很吻合前32K的哀求的。
4. 于是再往下看,看到读等待周期那块内容,创造对flash的读写,是须要根据主频高低来设置读写的等待周期的,主频越高,读写等待周期越高,于是去检讨了一下读写等待周期,创造有配置这个了,代码先读了时钟,按时钟去配置了等待周期。

5.这个问题也打消了,末了想来考虑到是否中断影响,由于测试的时候,没有开启别的中断,一贯正常,而运用中开了systick中断。后面写flash的时候,把中断关闭,写完在打开,然后问题就没再涌现了。
问题办理方案:办理方案便是我上面写的,把稳上面提到的3个点就好,末了最主要也是最随意马虎忽略的,便是写flash的时候,一定要把中断关闭,不然写的时候有中断触发,很可能就出写失落败了。
总结和建议:对flash的操作,各家原厂对MCU的flash对操作的哀求不完备相同,涌现问题的时候,一定要去看看手册有没有什么分外哀求,比如上面提到的华大的HC32L130擦写函数必须在前32K存放,以及不同主频要设置不同的读写等待周期等。
当然,这个最可能忽略也是最主要的,中断!
中断!
中断!