专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
STM32
如何做一个mcu4.3电容屏松手按键检测,不要操作系统的方法。
2019-07-20 10:03
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
STM32/STM8
1408
3
1732
能具体举个实例吗?
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
3条回答
君仁知命
2019-07-20 18:34
是这个吗?//é¨Ãè′¥ÃtÆá(2éóÃ2éÑˉ·½ê½)
//mode:0,Õy3£é¨Ãè.
//·μ»ØÖμ:μ±Ç°′¥Æá×′ì¬.
//0,′¥ÆáÎT′¥Ãt;1,′¥ÆáóD′¥Ãt
u8 GT9147_Scan(u8 mode)
{
u8 buf[4];
u8 i=0;
u8 res=0;
u8 temp;
u8 tempsta;
static u8 t=0;//¿ØÖÆ2éÑˉ¼ä¸ô,′ó¶ø½μμíCPUÕ¼óÃÂê
t++;
if((t%10)==0||t<10)//¿ÕÏDê±,ÿ½øèë10′ÎCTP_Scanoˉêy2żì2a1′Î,′ó¶ø½úê¡CPUê1óÃÂê
{
GT9147_RD_Reg(GT_GSTID_REG,&mode,1); //¶áè¡′¥ÃtμãμÄ×′ì¬
if(mode&0X80&&((mode&0XF)<6))
{
temp=0;
GT9147_WR_Reg(GT_GSTID_REG,&temp,1);//Çå±êÖ¾
}
if((mode&0XF)&&((mode&0XF)<6))
{
temp=0XFF<<(mode&0XF); //½«μãμĸöêy×a»»Îa1μÄλêy,Æ¥Åätp_dev.sta¶¨òå
tempsta=tp_dev.sta; //±£′æμ±Ç°μÄtp_dev.staÖμ
tp_dev.sta=(~temp)|TP_PRES_DOWN|TP_CATH_PRES;
tp_dev.x[4]=tp_dev.x[0]; //±£′æ′¥μã0μÄêy¾Y
tp_dev.y[4]=tp_dev.y[0];
for(i=0;i<5;i++)
{
if(tp_dev.sta&(1<<i)) //′¥ÃtóDD§?
{
GT9147_RD_Reg(GT9147_TPX_TBL[i],buf,4); //¶áè¡XY×ø±êÖμ
if(lcddev.id==0X5510) //4.3′ç800*480 MCUÆá
{
if(tp_dev.touchtype&0X01)//oáÆá
{
tp_dev.y[i]=((u16)buf[1]<<8)+buf[0];
tp_dev.x[i]=800-(((u16)buf[3]<<8)+buf[2]);
}else
{
tp_dev.x[i]=((u16)buf[1]<<8)+buf[0];
tp_dev.y[i]=((u16)buf[3]<<8)+buf[2];
}
}else if(lcddev.id==0X4342) //4.3′ç480*272 RGBÆá
{
if(tp_dev.touchtype&0X01)//oáÆá
{
tp_dev.x[i]=(((u16)buf[1]<<8)+buf[0]);
tp_dev.y[i]=(((u16)buf[3]<<8)+buf[2]);
}else
{
tp_dev.y[i]=((u16)buf[1]<<8)+buf[0];
tp_dev.x[i]=272-(((u16)buf[3]<<8)+buf[2]);
}
}
}
}
res=1;
if(tp_dev.x[0]>lcddev.width||tp_dev.y[0]>lcddev.height)//·Ç·¨êy¾Y(×ø±ê3¬3öáË)
{
if((mode&0XF)>1) //óDÆäËûμãóDêy¾Y,Ôò¸′μú¶t¸ö′¥μãμÄêy¾Yμ½μúò»¸ö′¥μã.
{
tp_dev.x[0]=tp_dev.x[1];
tp_dev.y[0]=tp_dev.y[1];
t=0; //′¥·¢ò»′Î,Ôò»á×îéùá¬Dø¼à2a10′Î,′ó¶øìá¸ßÃüÖDÂê
}else //·Ç·¨êy¾Y,ÔòoöÂÔ′Ë′Îêy¾Y(»1Ô-Ô-à′μÄ)
{
tp_dev.x[0]=tp_dev.x[4];
tp_dev.y[0]=tp_dev.y[4];
mode=0X80;
tp_dev.sta=tempsta; //»Ö¸′tp_dev.sta
}
}else t=0; //′¥·¢ò»′Î,Ôò»á×îéùá¬Dø¼à2a10′Î,′ó¶øìá¸ßÃüÖDÂê
}
}
if((mode&0X8F)==0X80)//ÎT′¥Ãtμã°′ÏÂ
{
if(tp_dev.sta&TP_PRES_DOWN) //֮ǰêDZ»°′ÏÂμÄ
{
tp_dev.sta&=~(1<<7); //±ê¼Ç°′¼üËé¿a
}else //֮ǰ¾íûóD±»°′ÏÂ
{
tp_dev.x[0]=0xffff;
tp_dev.y[0]=0xffff;
tp_dev.sta&=0XE0; //Çå3yμãóDD§±ê¼Ç
}
}
if(t>240)t=10;//ÖØDÂ′ó10¿aê¼¼Æêy
return res;
}
加载中...
查看其它3个回答
一周热门
更多
>
相关问题
STM32F4上I2C(在PROTEUS中模拟)调试不通的问题
6 个回答
芯片供应紧张,准备换个MCU,MM32L系列替换STM32L系列的怎么样?
7 个回答
STM32同时使用两个串口进行数据收发时数据丢包的问题
5 个回答
STM32F103串口通信死机问题
4 个回答
STM32WLE5CC连接SX1268在LoRa模式下能与 SX1278互通吗?
2 个回答
相关文章
ST公司第一款无线低功耗单片机模块有效提高物联网设计生产效率
0个评论
如何实现对单片机寄存器的访问
0个评论
通过USB用STM32片内自带Bootloader下载程序及注意事项
0个评论
欲练此功必先自宫之STM32汇编启动,放慢是为了更好的前行
0个评论
×
关闭
采纳回答
向帮助了您的知道网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
STM32
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
×
付费偷看金额在0.1-10元之间
确定
×
关闭
您已邀请
0
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
//mode:0,Õy3£é¨Ãè.
//·μ»ØÖμ:μ±Ç°′¥Æá×′ì¬.
//0,′¥ÆáÎT′¥Ãt;1,′¥ÆáóD′¥Ãt
u8 GT9147_Scan(u8 mode)
{
u8 buf[4];
u8 i=0;
u8 res=0;
u8 temp;
u8 tempsta;
static u8 t=0;//¿ØÖÆ2éÑˉ¼ä¸ô,′ó¶ø½μμíCPUÕ¼óÃÂê
t++;
if((t%10)==0||t<10)//¿ÕÏDê±,ÿ½øèë10′ÎCTP_Scanoˉêy2żì2a1′Î,′ó¶ø½úê¡CPUê1óÃÂê
{
GT9147_RD_Reg(GT_GSTID_REG,&mode,1); //¶áè¡′¥ÃtμãμÄ×′ì¬
if(mode&0X80&&((mode&0XF)<6))
{
temp=0;
GT9147_WR_Reg(GT_GSTID_REG,&temp,1);//Çå±êÖ¾
}
if((mode&0XF)&&((mode&0XF)<6))
{
temp=0XFF<<(mode&0XF); //½«μãμĸöêy×a»»Îa1μÄλêy,Æ¥Åätp_dev.sta¶¨òå
tempsta=tp_dev.sta; //±£′æμ±Ç°μÄtp_dev.staÖμ
tp_dev.sta=(~temp)|TP_PRES_DOWN|TP_CATH_PRES;
tp_dev.x[4]=tp_dev.x[0]; //±£′æ′¥μã0μÄêy¾Y
tp_dev.y[4]=tp_dev.y[0];
for(i=0;i<5;i++)
{
if(tp_dev.sta&(1<<i)) //′¥ÃtóDD§?
{
GT9147_RD_Reg(GT9147_TPX_TBL[i],buf,4); //¶áè¡XY×ø±êÖμ
if(lcddev.id==0X5510) //4.3′ç800*480 MCUÆá
{
if(tp_dev.touchtype&0X01)//oáÆá
{
tp_dev.y[i]=((u16)buf[1]<<8)+buf[0];
tp_dev.x[i]=800-(((u16)buf[3]<<8)+buf[2]);
}else
{
tp_dev.x[i]=((u16)buf[1]<<8)+buf[0];
tp_dev.y[i]=((u16)buf[3]<<8)+buf[2];
}
}else if(lcddev.id==0X4342) //4.3′ç480*272 RGBÆá
{
if(tp_dev.touchtype&0X01)//oáÆá
{
tp_dev.x[i]=(((u16)buf[1]<<8)+buf[0]);
tp_dev.y[i]=(((u16)buf[3]<<8)+buf[2]);
}else
{
tp_dev.y[i]=((u16)buf[1]<<8)+buf[0];
tp_dev.x[i]=272-(((u16)buf[3]<<8)+buf[2]);
}
}
}
}
res=1;
if(tp_dev.x[0]>lcddev.width||tp_dev.y[0]>lcddev.height)//·Ç·¨êy¾Y(×ø±ê3¬3öáË)
{
if((mode&0XF)>1) //óDÆäËûμãóDêy¾Y,Ôò¸′μú¶t¸ö′¥μãμÄêy¾Yμ½μúò»¸ö′¥μã.
{
tp_dev.x[0]=tp_dev.x[1];
tp_dev.y[0]=tp_dev.y[1];
t=0; //′¥·¢ò»′Î,Ôò»á×îéùá¬Dø¼à2a10′Î,′ó¶øìá¸ßÃüÖDÂê
}else //·Ç·¨êy¾Y,ÔòoöÂÔ′Ë′Îêy¾Y(»1Ô-Ô-à′μÄ)
{
tp_dev.x[0]=tp_dev.x[4];
tp_dev.y[0]=tp_dev.y[4];
mode=0X80;
tp_dev.sta=tempsta; //»Ö¸′tp_dev.sta
}
}else t=0; //′¥·¢ò»′Î,Ôò»á×îéùá¬Dø¼à2a10′Î,′ó¶øìá¸ßÃüÖDÂê
}
}
if((mode&0X8F)==0X80)//ÎT′¥Ãtμã°′ÏÂ
{
if(tp_dev.sta&TP_PRES_DOWN) //֮ǰêDZ»°′ÏÂμÄ
{
tp_dev.sta&=~(1<<7); //±ê¼Ç°′¼üËé¿a
}else //֮ǰ¾íûóD±»°′ÏÂ
{
tp_dev.x[0]=0xffff;
tp_dev.y[0]=0xffff;
tp_dev.sta&=0XE0; //Çå3yμãóDD§±ê¼Ç
}
}
if(t>240)t=10;//ÖØDÂ′ó10¿aê¼¼Æêy
return res;
}
一周热门 更多>