// 解锁操作函数HAL_StatusTypeDefHAL_FLASH_Unlock(void); HAL_StatusTypeDefHAL_FLASH_Lock(void);// 写操作函数/** * @brief Program halfword, word or double word at a specified address * @note The function HAL_FLASH_Unlock() should be called before to unlock the FLASH interface * The functio...
voidStartReadFlashInit(void){ u16 temp=STMFLASH_ReadHalfWord(FLASH_READ_FLAG);//读取一个16位数printf("ReadNum:%d\r\n",temp);//默认初始化 概率是1/65535if(temp!=858){ temp=858;//STMFLASH_Write,这个函数写一个数据就等价于以下HAL_FLASH_Unlock();//FLASH解锁FLASH_PageErase(FLASH_READ_FLAG...
//step1 解锁内部FLASH,允许读写功能 HAL_FLASH_Unlock(); //step2 开始擦除addr对应页 HAL_Status = HAL_FLASHEx_Erase(&pEraseInit,&PageError);//擦除 if(HAL_Status != HAL_OK) printf("内部FlASH擦除失败!rn"); //step3 写入数据 HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD,addr,Pdata); //st...
!!\r\n");result=HAL_OK;}else{Flash_If_DisableReadProtection();printf("DisableReadProtection!!!\r\n");result=HAL_OK;}returnresult;}voidFLASH_
读保护等级: 在使用 hal 库来设置FLASH读保护时,看到有一个读保护等级的配置如下: typedef struct { uint32_t OptionType; /*!< OptionType: Option byte to be configured. This parameter can be a value of @ref FLASHEx_OB_Type */ uint32_t WRPState; /*!< WRPState: Write protection activation...
方法/步骤 1 首先双击打开keil5软件,如图 2 在软件中新建一个.C和.H文件并加入工程,如图 3 然后在.c文件中编写HAL库的FLASH写数据函数,如图 4 接着是Flash的读取函数,如图 5 随后在.H文件中声明两个函数,如图 6 最后点击编译的快捷键,如图,没有错误和警告就可以使用了。注意事项 注意内部Flash擦写...
有时候我们需要在Flash上保存一些配置信息,这样可以利用STM32的片上Flash进行存储,开机检测标志位进行个性化设置,常见的应用比如: 设备参数保存 网络账号保存 出厂信息保存 STM32系列中的F1和F4的Flash结构是不一样的,其中F1通过Page管理,每个Page有1K或者2K;F4通过Section管理,这个可以通过STM32的HAL驱动中看到: ...
HAL_FLASH_Unlock(); //解锁,以准备进行FLASH操作 HAL_FLASHEx_Erase(&EraseInitStruct, &err);...
之前的文章中介绍过STM32F0列的内部Flash读写《STM32CubeMX之内部Flash读写》,F1系列的也是一样的。而F4系列的单片机与F0和F1略有不同,HAL库对应的函数也不同,今天来简单介绍一下。 以TM32F429IGT6单片机为例,其内部Flash起始地址是:0x08000000,大小是0x00100000。
需要注意的是内部flash,读写次数有限,所以需要控制擦写次数 首先使用cubmx生成代码, 就是配置时钟和debug口,还有串口信息 # 代码的部分 ## 串口 /* USER CODE BEGIN PV */#include"stdio.h"intfputc(intch,FILE*f){HAL_UART_Transmit(&huart1,(uint8_t*)&ch,1,HAL_MAX_DELAY);returnch;}/* USER COD...