#ifndef _FLASH_H_ #define _FLASH_H_ #include "stm32f10x.h" /** 备注:每次写数据前得先擦除所要存储位置所在的整个页,这是和EEPROM的不同之处。Flash不具备修改功能, 只能先擦除再写,而擦除时,只支持页擦除。 */ //数据在flash里面存储时是以16位的形式存储, #define PC_NUM_ADDR 0x08030000 //数据存储开始地址 0X08030000-0X08030023 #define STORE_DATA_NUM 10 //数组中的数据个数 extern u16 StoreBuffer[STORE_DATA_NUM];//要写入flash中的数据 extern u8 Save_Buffer[STORE_DATA_NUM*2];//要通过串口读出来的数据 typedef unsigned char BOOL; typedef unsigned char BYTE; typedef unsigned short WORD; typedef unsigned long DWORD; //void Startwritedata(DWORD addr); //现在可以向以地址(addr)开始的“页”里写入数据 //void Write_Complete(void); //某“页”数据写入完成 上锁 //void SavePara(DWORD addr,WORD data); //向指定地址(addr)写数据(两个字节) //WORD GetPara(DWORD addr); //读取指定地址(addr)的数据(两个字节) //void Savestr_to_flash(DWORD addr,WORD *str,WORD len);//将一串数据存到以(addr)为开始地址的区间内 //void Readstr_of_flash(DWORD addr,WORD *str,WORD len);//从(addr)为开始地址读取一个字符串 void SavePara_to_flash(void); //保存设备现在的运行数据 void Readpara_from_flash(void); //读取上次断电时,设备运行的一些参数 #endif