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();
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
感谢大师的回复,我试过了用一个16位的数据是可以写进去的,感觉应该是要4字节对齐
一周热门 更多>