• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

STM32如何在程序中在固定的flash地址上写入数据

ricefat 2020-03-07 浏览量:2437
STM32如何在程序中在固定的flash地址上写入数据
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 对STM32的固定flash地址写数据,可以直接用FLASH_ProgramHalfWord(WriteAddrUsrCode)这个函数来写数据,WriteAddr就是你的指定flash地址,要注意这个地址不能设置在程序段​
    • 发布于 2020-03-13
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:5
  • 可以先定义一个变量a=0x0001这个是准备写入地址,然后定义一个数据变量b=*(u8*)a,操作时直接用b,然后都有操作在0x0001地址上
    • 发布于2020-03-07
    • 举报
    • 评论 0
    • 0
    • 0

  • 调用库函数:
    FLASH_Unlock(); //1、解锁Flash
    FLASH_SetLatency(FLASH_Latency_2); //2、72MHz系统时钟下设置两个时钟延时
    FLASH_ErasePage(addr); //3、擦除指定的页,addr是页的起始地址,一次擦除2KB
    FLASH_ProgramHalfWord(WriteAddrUsrCode) ; //4、指定地址写入数据,UsrCode是unsigned int类型,STM32的Flash是双字节(半字)写入。
    FLASH_Lock(); //5、Flash上锁。
    • 发布于2020-03-08
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以直接使用指针的方式,将数据写入固定地址,将指针的地址设置成Flash的某个不使用的地址,可以是Flash的最后的位置


    • 发布于2020-03-08
    • 举报
    • 评论 0
    • 0
    • 0

  • STM32的flash要先擦除才能写入

    HAL_FLASHEx_Erase这个函数用来执行擦除操作

    HAL_FLASH_Program用于执行写入操作​

    • 发布于2020-03-08
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以直接用指针的方式写入,只需要定义一个指针地址,通过地址指针的方式写入数据
    • 发布于2020-03-15
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

STM32如何在程序中在固定的flash地址上写入数据