return 0; } 函数形参: FlashAddress:待写入FLASH的地址 Data:待写入数据的缓存区地址 DataLength:待写入数据的长度 说明: APP_END_ADDR:为宏定义 #define APP_END_ADDR ((uint32_t)0x0803FFFFUL) HAL库接口函数HAL_FLASH_Program的写入方式有三种: 1、半字写入(FLASH_TYPEPROGRAM_HALFWORD) 16bit(2字节) ...
HAL_StatusTypeDef HAL_FLASH_Program(uint32_t TypeProgram, uint32_t Address, uint64_t Data); HAL_StatusTypeDef HAL_FLASH_Program_IT(uint32_t TypeProgram, uint32_t Address, uint64_t Data); 前者为轮询方式写,后者为中断方式写。第一个参数为写模式,它定义了写的字节数量:双字,字,半字与字节。第...
写入位置,每次+8是因为存储的类型是uint64_t,占用64bit,8字节for(inti =0; i < len;i ++ , startAddressIndex +=8) {//写入数据HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD, startAddressIndex, data[i]);
intmain(void){HAL_Init();SystemClock_Config();MX_GPIO_Init();MX_USART1_UART_Init();while(1){HAL_FLASH_Unlock();uint32_tPageError=0;__disable_irq();//擦除前关闭中断if(HAL_FLASHEx_Erase(&EraseInitStruct,&PageError)==HAL_OK){printf("擦除 成功\r\n");}__enable_irq();//擦除后...
STM32H7的两个Flash BANK是256bit带宽,CPU访问是采用的两个64bit AXI总线。 HAL库的内部Flash编程函数HAL_FLASH_Program固定编写32字节数据。 70.2 内部Flash基础知识 70.2.1 内部Flash的硬件框图 认识一个外设,最好的方式就是看它的框图,方便我们快速的了解内部Flash的基本功能,然后再看手册了解细节。
temp=858;//STMFLASH_Write,这个函数写一个数据就等价于以下HAL_FLASH_Unlock();//FLASH解锁FLASH_PageErase(FLASH_READ_FLAG);//擦除页FLASH_WaitForLastOperation(FLASH_WAITETIME);//等待上次操作完成CLEAR_BIT(FLASH->CR, FLASH_CR_PER);//清除标记HAL_FLASH_Program(FLASH_TYPEPROGRAM_HALFWORD,FLASH_READ...
HAL_FLASH_Lock();} flash的指令操作 uint16_t MEM_If_Erase_FS(uint32_t start_Add,uint32_...
if (HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD, addrbuf, DataBuf) == HAL_OK){ addrbuf += 4;...
/* FLASH总页数 */ #define STM32FLASH_PAGE_NUM (STM32FLASH_SIZE / STM32FLASH_PAGE_SIZE) /// 导出函数声明 void FLASH_Init(void); uint32_t FLASH_Read(uint32_t Address, void *Buffer, uint32_t Size); uint32_t FLASH_Write(uint32_t Address, const uint16_t *Buffer, uint32_t NumTo...
status = HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD, CONFIG_START_FLASH_ADDRESS + wordOffset, *(uint32_t*) ((char*) &masterConfig + wordOffset));if(status != HAL_OK) {break; } } }if(status == HAL_OK) {break; } } HAL_FLASH_Lock();// Flash write failed - just die nowif(stat...