FLASH编程过程
FLASH编程过程
1.检查FLASH_CR的LOCK是否解锁,如果没有则先解锁。
2.检查FLASH_SR寄存器的BSY位,以确认没有其他正在进行的编程操作
3.设置FLASH_CR寄存器的PG位为“1”在指定的地址写入编程的半字。
4.等待BSY位变为0
5.读出写入的地址并验证数据。
STM32的FLASH擦除过程
页擦除和整片擦除
页擦除
1.检查FLASH_CR的LOCK是否解锁,如果没有则先解锁。
2.检查FLASH_SR寄存器的BSY位,以确认没有其他正在进行的编程操作
3.设置FLASH_CR寄存器的PER位为“1”.
4.用FLASH_AR寄存器选择要擦除的页
4.用FLASH_CR寄存器的STRT位为“1”
5.设置FLASH_CR寄存器的STRT位为“1”.
6.等待BSY位变为“0”
7.读出被擦除的页并做验证
FLASH全片擦除
1.检查FLASH_SR寄存器的BSY位,以确认没有其他正在进行的编程操作
2.设置FLASH_CR寄存器的MER位为“1”.
3.设置FLASH_CRR寄存器的STRT为1
4.等待BSY为0
5.读出所有页并验证
programoptionbyte编程选项字节
flash_erasepage页擦除 写入AR寄存器
flash_eraseallage全片擦除
flash_eraseOptionBytes擦除选项字节
flash_GetStatus编程的状态
flash_WaitForlastoperation等待上次操作 等待SR=0