代码拉取完成,页面将自动刷新
#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
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。