| 
 前言本例是以读写C8T6最小系统板的Flash,了解其Flash地址空间的数据读取。stm32f103c8t6只有20KB 内存(RAM)供程序代码和数组变量存放,因此,针对内部Flash的总计64KB存储空间(地址从0x08000000开始),运行一次写入8KB数据,总计复位运行代码4次,将32KB数据写入Flash。并验证写入数据的正确性和读写速率。
 一、配置cubemx工程滴答定时器的配置  打开外部时钟
 
  配置时钟树
  基本配置完成
 
  设置堆栈大小
  然后生成代码即可
 二、使用Keil5修改代码添加flash.c文件并在工程路径中添加其头文件所在路径
  在main.c文件中添加
 flash.h头文件并定义两个变量数组
  在
 main函数中添加以下代码
 
	uint8_t i;
	uint8_t FlashTest[] = "Hello This is a Flash Test DEMO";
  
  
  
  HAL_Init();
  
  
  
  SystemClock_Config();
  
	
FlashWriteBuff( DEVICE_INFO_ADDRESS, FlashTest,sizeof(FlashTest) );        
	
	for(i=0;i<255;i++)
		FlashWBuff[i] = i;
	
FlashWriteBuff( DEVICE_INFO_ADDRESS + sizeof(FlashTest), FlashWBuff,255 );  
FlashReadBuff(  DEVICE_INFO_ADDRESS + sizeof(FlashTest),FlashRBuff,255  );  
  
  
  MX_GPIO_Init();
  
  
  
  
  while (1)
  {
    
    
  }
  
 编译完成后,开始调试程序 
 三、调试进入调试界面,添加内存观察窗口  添加变量观测窗口,并添加
 FlashWBuff,FlashRBuff变量
  并勾选窗口自动更新
  F5,全速运行程序,可以看到数组FlashRBuff中内容与数组FlashWBuff中内容一样了:
  观察内存窗口
  我们尝试修改一下代码,多写几次
 
 参考:STM32 进阶教程 13 – FLASH的读写操作
 STM32操作访问flash,包括写入数据到flash和从flash读取数据 |