STM32F103的FLASH当EEPROM用时写入一个小于0XFF的数时正确,写入一个大于0XFF时就错误

2019-07-21 04:10发布

STM32F103的FLASH当EEPROM用时写入一个小于0XFF的数时正确,写入一个大于0XFF时就错误,请大师们帮忙给解答一下,先谢谢了

void My_Flash_Read_16bit(uint32_t FLASH_ADR,uint16_t *pp,uint8_t unm9)
{//读数据
        uint8_t x1;
        for(x1=0;x1<unm9;x1++)
        {
                pp[x1]=*(vu16*)(FLASH_ADR);         /* 读取地址中的16位数据 */
                FLASH_ADR +=2;       
        }       
}


void My_Flash_Write_16bit(uint32_t FLASH_ADR,uint16_t *FLASH_DATA, uint8_t unm9)
{//写数据
        uint8_t x8;
           FLASH_Unlock();                /* 每次擦除Flash中数据时得先解锁 */
        FLASH_ErasePage(FLASH_ADR);//擦除
        for(x8=0;x8<unm9;x8++)
        {
                FLASH_ProgramHalfWord(FLASH_ADR,FLASH_DATA[x8]);   /* 写16位半字 */
                FLASH_ADR +=2;
        }

        FLASH_Lock();

}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。