OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2695|回复: 3

stm32触摸屏的问题

[复制链接]

15

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2015-8-8
在线时间
34 小时
发表于 2016-10-12 12:15:15 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 刘飞月 于 2016-10-12 12:16 编辑

//保存在EEPROM里面的地址区间基址,占用14个字节(RANGE:SAVE_ADDR_BASE~SAVE_ADDR_BASE+13)
#define SAVE_ADDR_BASE 40
//保存校准参数                                                                                    
void TP_Save_Adjdata(void)
{
        AT24CXX_Write(SAVE_ADDR_BASE,(u8*)&tp_dev.xfac,14);        //强制保存&tp_dev.xfac地址开始的14个字节数据,即保存到tp_dev.touchtype
         AT24CXX_WriteOneByte(SAVE_ADDR_BASE+14,0X0A);                //在最后,写0X0A标记校准过了
}

上面的函数中是说保存14个字节
但是在
//触摸屏控制器
typedef struct
{
        u8 (*init)(void);                        //初始化触摸屏控制器
        u8 (*scan)(u8);                                //扫描触摸屏.0,屏幕扫描;1,物理坐标;         
        void (*adjust)(void);                //触摸屏校准
        u16 x[CT_MAX_TOUCH];                 //当前坐标
        u16 y[CT_MAX_TOUCH];                //电容屏有最多5组坐标,电阻屏则用x[0],y[0]代表:此次扫描时,触屏的坐标,用
                                                                //x[4],y[4]存储第一次按下时的坐标.
        u8  sta;                                        //笔的状态
                                                                //b7:按下1/松开0;
                                    //b6:0,没有按键按下;1,有按键按下.
                                                                //b5:保留
                                                                //b4~b0:电容触摸屏按下的点数(0,表示未按下,1表示按下)
/////////////////////触摸屏校准参数(电容屏不需要校准)//////////////////////                                                               
        float xfac;                                       
        float yfac;
        short xoff;
        short yoff;           
//新增的参数,当触摸屏的左右上下完全颠倒时需要用到.
//b0:0,竖屏(适合左右为X坐标,上下为Y坐标的TP)
//   1,横屏(适合左右为Y坐标,上下为X坐标的TP)
//b1~6:保留.
//b7:0,电阻屏
//   1,电容屏
        u8 touchtype;
}_m_tp_dev;

这个的定义里面
从xfac到touchtype仅仅只有4+4+2+2+1=13个字节。
这样不是越界了吗?


最佳答案

查看完整内容[请看2#楼]

实际上,只需要保存这部分就行了: float xfac; float yfac; short xoff; short yoff; 所以,最低要求12个字节都够
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2016-10-12 12:15:16 | 显示全部楼层
实际上,只需要保存这部分就行了:
       float xfac;                                       
        float yfac;
        short xoff;
        short yoff;   

所以,最低要求12个字节都够
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

15

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2015-8-8
在线时间
34 小时
 楼主| 发表于 2016-10-12 18:30:33 | 显示全部楼层
经过验证:我把void TP_Save_Adjdata(void){}和u8 TP_Get_Adjdata(void){}中的14修改为13也是可以正常运行的。
回复

使用道具 举报

15

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2015-8-8
在线时间
34 小时
 楼主| 发表于 2016-10-13 02:23:27 | 显示全部楼层
正点原子 发表于 2016-10-12 12:15
实际上,只需要保存这部分就行了:
       float xfac;                                       
       ...

多谢  两个字还不能回复
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-23 18:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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