1 Star 2 Fork 2

蓝凌风/EmbeddedLib

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
touch.h 1.95 KB
一键复制 编辑 原始数据 按行查看 历史
蓝凌风 提交于 2023-11-06 10:27 . 最新修改
#ifndef __TOUCH_H__
#define __TOUCH_H__
#include "bsp.h"
#define TP_PRES_DOWN 0x80 //触屏被按下
#define TP_CATH_PRES 0x40 //有按键按下了
#define CT_MAX_TOUCH 5 //电容屏支持的点数,固定为5点
typedef struct _s_touch TOUCH;
//电阻屏函数
uint16_t TP_Read_AD(TOUCH *touch,uint8_t CMD); //读取AD转换值
uint16_t TP_Read_XOY(TOUCH *touch,uint8_t xy); //带滤波的坐标读取(X/Y)
uint8_t TP_Read_XY(TOUCH *touch,uint16_t *x,uint16_t *y); //双方向读取(X+Y)
uint8_t TP_Read_XY2(TOUCH *touch,uint16_t *x,uint16_t *y); //带加强滤波的双方向坐标读取
void TP_Drow_Touch_Point(uint16_t x,uint16_t y,uint16_t color);//画一个坐标校准点
void TP_Draw_Big_Point(uint16_t x,uint16_t y,uint16_t color); //画一个大点
void TP_Save_Adjdata(void); //保存校准参数
uint8_t TP_Get_Adjdata(void); //读取校准参数
void TP_Adjust(TOUCH *touch); //触摸屏校准
void TP_Adj_Info_Show(uint16_t x0,uint16_t y0,uint16_t x1,uint16_t y1,uint16_t x2,uint16_t y2,uint16_t x3,uint16_t y3,uint16_t fac);//显示校准信息
//电阻屏/电容屏 共用函数
uint8_t TP_Scan(TOUCH *touch,uint8_t tp); //扫描
uint8_t TP_Init(TOUCH *touch); //初始化
struct _s_touch{
float xfac;
float yfac;
short xoff;
short yoff;
uint16_t xpos[CT_MAX_TOUCH];
uint16_t ypos[CT_MAX_TOUCH];
uint8_t sta; //笔的状态
//b7:按下1/松开0;
//b6:0,没有按键按下;1,有按键按下.
//b5:保留
//b4~b0:电容触摸屏按下的点数(0,表示未按下,1表示按下)
SPI spi;
OutputPort cs;
InputPort pen;
uint8_t (*Init)(TOUCH *touch); //初始化触摸屏控制器
uint8_t (*scan)(TOUCH *touch,uint8_t tp); //扫描触摸屏.0,屏幕扫描;1,物理坐标;
void (*adjust)(TOUCH *touch); //触摸屏校准
};
TOUCH new_touch(uint32_t spi_gpio,uint32_t sck_pinx,\
uint32_t miso_pinx,uint32_t mosi_pinx,uint32_t spix,\
uint32_t cs_gpio,uint32_t cs_pinx,
uint32_t pen_gpio,uint32_t pen_pinx);
#endif
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/mzwhhwj/EmbeddedLib.git
git@gitee.com:mzwhhwj/EmbeddedLib.git
mzwhhwj
EmbeddedLib
EmbeddedLib
master

搜索帮助