stm32f103c8t6 flash读写操作代码
时间: 2024-03-20 10:36:00 浏览: 151
当然可以!下面是一个简单的示例代码,用于在STM32F103C8T6微控制器上进行Flash读写操作:
```c
#include "stm32f10x.h"
// 定义Flash起始地址
#define FLASH_START_ADDR 0x08000000
// 函数声明
void Flash_Write(uint32_t addr, uint16_t data);
uint16_t Flash_Read(uint32_t addr);
int main(void)
{
// 初始化Flash
FLASH_Unlock();
FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR);
// 写入数据到Flash
uint16_t data = 0xABCD;
Flash_Write(FLASH_START_ADDR, data);
// 从Flash读取数据
uint16_t readData = Flash_Read(FLASH_START_ADDR);
while (1)
{
// 循环执行其他操作
}
}
// Flash写入函数
void Flash_Write(uint32_t addr, uint16_t data)
{
// 确保Flash页擦除
FLASH_ErasePage(addr);
// 开始写入数据
FLASH_ProgramHalfWord(addr, data);
}
// Flash读取函数
uint16_t Flash_Read(uint32_t addr)
{
return *(volatile uint16_t *)addr;
}
```
这段代码演示了如何使用STM32F103C8T6的库函数进行Flash读写操作。首先,我们定义了Flash的起始地址为0x08000000。然后,在主函数中,我们使用`Flash_Write`函数将数据0xABCD写入到Flash中,然后使用`Flash_Read`函数从Flash中读取数据。请注意,写入数据之前需要确保Flash页已经擦除。
希望这段代码能够帮助到你!如果你有任何其他问题,请随时提问。
阅读全文