stm32f103c8t6flash读写代码
时间: 2023-09-18 09:11:04 浏览: 123
以下是STM32F103C8T6的Flash读写代码示例:
// 定义FLASH的起始地址
#define FLASH_START_ADDR 0x08000000
// Flash写入函数
void Flash_Write(uint32_t Address, uint32_t Data)
{
// 使能Flash写入操作
FLASH_Unlock();
// 清除之前的错误标志
FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR);
// 开始写入操作
FLASH_Status status = FLASH_ProgramWord(Address, Data);
// 检查写入是否成功
if (status != FLASH_COMPLETE)
{
// 写入失败
// 处理错误
}
// 禁止Flash写入操作
FLASH_Lock();
}
// Flash读取函数
uint32_t Flash_Read(uint32_t Address)
{
// 读取Flash中的数据
uint32_t data = *((uint32_t*)Address);
return data;
}
// 示例代码
int main(void)
{
// Flash写入测试
uint32_t data_to_write = 0x12345678;
uint32_t address_to_write = FLASH_START_ADDR + 0x100; // 从地址0x08000100处开始写入
Flash_Write(address_to_write, data_to_write);
// Flash读取测试
uint32_t address_to_read = FLASH_START_ADDR + 0x100; // 从地址0x08000100处开始读取
uint32_t data_read = Flash_Read(address_to_read);
// 检查读取是否成功
if (data_read == data_to_write)
{
// 读取成功
// 处理数据
}
else
{
// 读取失败
// 处理错误
}
while (1)
{
// 循环执行其他任务
}
}
阅读全文