找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5160|回复: 1
收起左侧

野火stm32f4读写内部flash程序 按字,按半字,按字节

[复制链接]
ID:484359 发表于 2019-10-4 15:55 | 显示全部楼层 |阅读模式
参考野火给的程序移植而成,需要的可以下载来使用,代码已经调试好,打开串口助手查看结果

单片机源程序如下:
  1. #include "stm32f4xx.h"
  2. #include "./usart/bsp_debug_usart.h"
  3. #include "./led/bsp_led.h"   
  4. #include "./internalFlash/bsp_internalFlash.h"   

  5. void delay(unsigned int x)
  6. {
  7.         while(x--);
  8. }
  9. /**
  10.   * @brief  主函数
  11.   * @param  无
  12.   * @retval 无
  13.   */
  14. int main(void)
  15. {
  16.         unsigned int m;
  17.         uint32_t aa[2] = {0x12345678,0x11111111};
  18.         uint32_t bb[2] = {0};
  19.         uint16_t aa1[5] = {400,500,600,700,800};
  20.         uint16_t bb1[5] = {0};
  21.         uint8_t aa2[10] = {0,1,2,3,4,5,6,7,8,9};
  22.         uint8_t bb2[10] = {0};
  23.        
  24.   /*初始化USART,配置模式为 115200 8-N-1*/
  25.   Debug_USART_Config();
  26.         LED_GPIO_Config();

  27.         LED_BLUE;
  28.         /*调用printf函数,因为重定向了fputc,printf的内容会输出到串口*/
  29.         printf("正在进行读写内部FLASH实验,请耐心等待 \r\n");
  30.         printf("开始写入32位数据\r\n:");
  31.         if(Write_Wordbyte(ADDR_FLASH_SECTOR_8,ADDR_FLASH_SECTOR_9,aa,2) == 1)
  32.         {
  33.                 LED_GREEN;               
  34.         }
  35.         for(m = 0;m < 2;m++)
  36.         {
  37.                 printf("写入的32位数据为 = %X\r\n",aa[m]);
  38.                 delay(0xfffff);
  39.         }
  40.         if(Read_Wordbyte(ADDR_FLASH_SECTOR_8,2,bb) == 1)       
  41.         {
  42.                 LED_RED;
  43.         }
  44.         for(m = 0;m < 2;m++)
  45.         {
  46.                 printf("读出的32位数据为 = %X\r\n",bb[m]);
  47.                 delay(0xfffff);
  48.         }
  49.         ////////////////////////////////////////
  50.         printf("开始写入16位数据r\n");
  51.         if(Write_HalfWordbyte(ADDR_FLASH_SECTOR_8,ADDR_FLASH_SECTOR_9,aa1,5) == 1)
  52.         {
  53.                 LED_GREEN;               
  54.         }
  55.         for(m = 0;m < 5;m++)
  56.         {
  57.                 printf("写入的16位数据为 = %d\r\n",aa1[m]);
  58.                 delay(0xfffff);
  59.         }
  60.         if(Read_HalfWordbyte(ADDR_FLASH_SECTOR_8,5,bb1) == 1)       
  61.         {
  62.                 LED_RED;
  63.         }
  64.         for(m = 0;m < 5;m++)
  65.         {
  66.                 printf("读出的16位数据为 = %d\r\n",bb1[m]);
  67.                 delay(0xfffff);
  68.         }
  69.         ///////////////////////////////////
  70.         printf("开始写入8位数据\r\n");
  71.         if(Write_Byte(ADDR_FLASH_SECTOR_8,ADDR_FLASH_SECTOR_9,aa2,10) == 1)
  72.         {
  73.                 LED_GREEN;               
  74.         }
  75.         for(m = 0;m < 10;m++)
  76.         {
  77.                 printf("写入的8位数据为 = %d\r\n",aa2[m]);
  78.                 delay(0xfffff);
  79.         }
  80.         if(Read_Byte(ADDR_FLASH_SECTOR_8,10,bb2) == 1)       
  81.         {
  82.                 LED_RED;
  83.         }
  84.         for(m = 0;m < 10;m++)
  85.         {
  86.                 printf("读出的8位数据为 = %d\r\n",bb2[m]);
  87.                 delay(0xfffff);
  88.         }
  89.                
  90.   while(1)
  91.         {        }

  92. }



  93. /*********************************************END OF FILE**********************/
复制代码

所有程序51hei提供下载:
读写内部FLASH.7z (359.98 KB, 下载次数: 155)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:259996 发表于 2021-6-11 16:57 | 显示全部楼层
没有将4字节拼为一个字进行保存,意义不大!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表