大学生
最后登录1970-1-1
在线时间 小时
注册时间2017-3-28
|
本帖最后由 尤艾斯比 于 2017-4-30 21:21 编辑
1.FLASH读写触摸标志touch_flag,按这样的写法是可以实现了的。
#define Calibrate_flag_flash ((uint32_t)0x8000000+2048*246) //246页触摸屏校准标志
uint8_t touch_flag = 0xcc; //初始化任意赋值
/*校准成功,写触摸标志*/
touch_flag = 0x55;
FLASH_Unlock();
//清除该页
FLASH_ErasePage(Calibrate_flag_flash);
/*将触摸标志touch_flag存入FLASH的Calibrate_flag_flash地址*/
FLASH_ProgramHalfWord(Calibrate_flag_flash,touch_flag);
FLASH_Lock();
/* 在主函数中读touch_flag, */
Flash_Read(Calibrate_flag_flash,&touch_flag,1);
2.FLASH读写触摸系数写出来不对,不知道是不是类型转换哪里出了问题。
long double aa1,bb1, cc1,aa2,bb2, cc2; //等待写入的触摸系数
FLASH_Status FLASH_ProgramHalfWord(uint32_t Address, uint16_t Data) //写FLASH函数原型
FLASH_Status FLASH_ProgramWord(uint32_t Address, uint32_t Data) //写FLASH函数原型
* @param Address: specifies the address to be programmed.
* @param buf: specifies the data to be programmed.
* @param iNbrToWrite: the number to read from flash
int Flash_Read(uint32_t iAddress, uint8_t *buf, int32_t iNbrToRead) //读FLASH函数原型
因为写入函数是uint 16_t或者uint 32_t,读取是uint8_t类型, 等待的写入的又是long double类型,搞的分不清楚了。
这上面三个函数是我在FLASH库函数里找到的,能帮忙写一下代码,实现把aa1,bb1, cc1,aa2,bb2, cc2写入到内部FLASH里,再读取出来么?
|
|