此内容由EEWORLD论坛网友tiankai001原创,如需转载或用于商业用途需征得作者同意并注明出处
msp430单片机开发实录(15)
现象:
MSP430单片机每一种型号里面都有一些可以用来存储数据的信息flash段。在对MSP430F67xx1单片机进行调试的时候,发现有时候向信息flash段写数据时,会发生写错的情况,写flash的程序是一直都在用的,以前在别的430单片机上也用同样的程序,从来没有发现数据写错的情况。
试验:
仔细对照数据手册和用户指南,反复核对时序,都没有发现问题。于是又仔细查询相应的寄存器中是否有配置不正确的情况,最后发现是在写flash前没有一个“判忙”的检测,应当是先判断信息flash段有没有准备好写下一个字或字节的写入,只有这个状态位置1,表示准备好写入了,才能够继续写入数据。
验证:
在向写flash写数据前,先判断“写闪存准备位”是否处于允许写入的状态,加上这句话后,就不会出现写错数据的情况了。
备注:
在写flash寄存器中,还有一个busy状态位,这个位表示flash当前是否正忙于擦除或编程,用于对flash进行读写操作前的判断,只有不忙的时候,才能进行读写操作。