YFY的工程师之路 https://bbs.21ic.com/?660325 [收藏] [复制] [RSS] 见证YFY技术发展之路!

日志

STM32 Flash数据读写

已有 677 次阅读2015-11-5 10:30 |个人分类:ARM技术|系统分类:嵌入式系统| Flash

#define                         STARTADDR31                        0x08007C00
1、向Flash的指定地址写入数据
void WriteNBytesDataToFlash(uint32_t Addr,uint8_t *pData,uint8_t Len)
{
        uint8_t i=0;
        FLASH_Unlock();//解锁Flash编程擦除控制器
        FLASH_ClearFlag(FLASH_FLAG_BSY|FLASH_FLAG_EOP|FLASH_FLAG_PGERR|FLASH_FLAG_WRPRTERR);//清除标志位
        /***********************************************************************************************
        //FLASH_FLAG_BSY   Flash忙标志位
        //FLASH_FLAG_EOP   Flash操作结束标志位
        //FLASH_FLAG_PGERR Flash编写错误标志位
        //FLASH_FLAG_WRPRTERR Flash页面写保护错误标志位
        ***********************************************************************************************/
        FLASH_ErasePage(STARTADDR31);//擦除指定地址页
        for(i=0;i<Len;i++)
        {
                FLASH_ProgramHalfWord(Addr+2*i,*pData++);//从指定地址开始写数据
        }
        FLASH_ClearFlag(FLASH_FLAG_BSY|FLASH_FLAG_EOP|FLASH_FLAG_PGERR|FLASH_FLAG_WRPRTERR);//清除标志位
        FLASH_Lock();//锁定Flash编程擦除控制器
}
2、从指定地址读数据
uint8_t ReadSensorParameter(uint32_t Addr)
{
        uint8_t SensorPar;
       
        SensorPar = *(uint8_t *)Addr;
       
        return SensorPar;
}

路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)