新手入门
- 积分
- 7
- 金钱
- 7
- 注册时间
- 2016-1-17
- 在线时间
- 2 小时
|
7金钱
原子哥,我使用的是STM32F103VECT6 我想把浮点数写入FLASH,然后读出来,我发觉读出来FD=0,我这种强奸方法可行吗? 给点建议。。。。
#define STARTADDR 0x0807F800 //主存储器第255页首地址
volatile FLASH_Status FLASHStatus=FLASH_COMPLETE;
float FD,X2;
X2=12.9779415;
void Main(void)
{
WriteFlashOneWord(0,(float)X2);
ReadFlashNBtye(0,FD);
}
void ReadFlashNBtye(uint32_t ReadAddress, float ReadBuf) 读FLASH
{
ReadAddress=(uint32_t)STARTADDR+ReadAddress;
ReadBuf=ReadAddress;
}
void WriteFlashOneWord(uint32_t WriteAddress,float WriteData)
{
FLASH_Unlock();
FLASH_ClearFlag(FLASH_FLAG_BSY | FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR);
FLASHStatus=FLASH_ErasePage(STARTADDR);//擦除最后一页(对于SMT32F103VECT6是第255页)
if(FLASHStatus==FLASH_COMPLETE)
{
FLASHStatus=FLASH_ProgramWord(STARTADDR+WriteAddress,WriteData);
}
FLASH_Lock();
}
|
|