HC32L136K8TA的 flash 读写操作代码
时间: 2023-08-06 10:12:21 浏览: 198
下面是HC32L136K8TA的Flash读写操作的示例代码,仅供参考:
```c
#include "hc32l136k8ta.h"
void Flash_Write(uint32_t u32Addr, uint32_t u32Data)
{
// 检查Flash是否处于编程模式
if (FLASH_IF->CR_f.PG == 0)
{
// 进入Flash编程模式
FLASH_IF->KEY = 0x0123;
FLASH_IF->KEY = 0x3210;
FLASH_IF->CR_f.PG = 1;
}
// 写入数据
*(volatile uint32_t*)u32Addr = u32Data;
}
uint32_t Flash_Read(uint32_t u32Addr)
{
return (*(volatile uint32_t*)u32Addr);
}
void Flash_Erase(uint32_t u32Addr)
{
// 检查Flash是否处于擦除模式
if (FLASH_IF->CR_f.ERASE == 0)
{
// 进入Flash擦除模式
FLASH_IF->KEY = 0x0123;
FLASH_IF->KEY = 0x3210;
FLASH_IF->CR_f.ERASE = 1;
}
// 擦除扇区
*(volatile uint32_t*)u32Addr = 0x00000000;
}
```
以上代码中,Flash_Write()函数用于向指定地址写入数据,Flash_Read()函数用于从指定地址读取数据,Flash_Erase()函数用于擦除指定地址所在的Flash扇区。在使用这些函数之前,需要先开启Flash时钟,并且需要在Flash写入或擦除之前进入相应的编程模式。具体的操作指令和Flash编程模式的说明,可以参考HC32L136K8TA的数据手册。
阅读全文