F28035的flash解锁操作实例
时间: 2023-08-21 10:07:47 浏览: 57
好的,下面是一个简单的 F28035 Flash 解锁操作的实例代码:
```c
#include "F28035_device.h"
// 定义一个指向 Flash 的指针
volatile Uint16 * Flash_ptr = (Uint16 *)0x800000;
// 定义 Flash 解锁序列
#define FLASH_KEY 0x5A5A
void main(void)
{
// 关闭 Watchdog Timer
WdRegs.WDCR.all = 0x68;
// 解锁 Flash
FlashRegs.FPWR.bit.PWR = 3; // 设置 Flash 为解锁模式
FlashRegs.FSPRD.bit.PFKEY = FLASH_KEY; // 写入 Flash 解锁序列
// 将测试变量写入 Flash
Flash_ptr[0] = 0xABCD;
// 锁定 Flash
FlashRegs.FPWR.bit.PWR = 0; // 设置 Flash 为锁定模式
// 死循环
for (;;);
}
```
这个例子中,我们使用 Flash 解锁序列 `0x5A5A` 来解锁 Flash,并将其设置为解锁模式。然后,我们将测试变量写入 Flash 中,并在完成写入操作后将 Flash 再次锁定。需要注意的是,在解锁 Flash 后,需要在一定时间内完成 Flash 的写入操作,否则 Flash 会自动锁定。
此外,如果在写入 Flash 的过程中发生错误,可以通过读取 Flash 的状态寄存器 `FlashRegs.FSTATA.all` 来获取错误信息。如果 Flash 写入成功,则该寄存器的值为 0。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)