野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9581|回复: 1

电阻触摸屏校准系数存放内部FLASH。

[复制链接]
发表于 2017-4-30 14:43:14 | 显示全部楼层 |阅读模式
本帖最后由 尤艾斯比 于 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里,再读取出来么?

















回复

使用道具 举报

发表于 2017-5-2 09:01:49 | 显示全部楼层
参考读写内部FLASH的例程,把它们作为数据写入就好
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-9-29 07:26 , Processed in 0.025724 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表