OpenEdv-开源电子网

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

继续触摸屏问题

[复制链接]

6

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
62
金钱
62
注册时间
2012-6-16
在线时间
0 小时
发表于 2012-9-28 20:37:25 | 显示全部楼层 |阅读模式
主程序中部分程序,没有改动过。
do
{
Convert_Pos();
Pen_Point.Key_Sta=Key_Up;
if(Pen_Point.X0>216&&en_Point.Y0<16)Load_Drow_Dialog();//清除
else 
{
Draw_Big_Point(Pen_Point.X0,Pen_Point.Y0);//画图    
GPIOC->ODR|=1<<1;    //PC1 上拉   
}
}while(PEN==0);//如果PEN一直有效,则一直执行

问题:上电后校准后,当没有触碰到屏时,也就是还没有在上面画写时,LED会一直闪烁,按下按键KEY0会强制进入校准。但当在屏上画写后,LED状态就闪烁了(亮或不亮),按下按键也不会强制进入校准。只有当重新清屏后LED和KEY0才会恢复正常。也就是只要屏上被画写过后,LEDT和KEY0不工作了。为什么?
求解答,谢谢!


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
62
金钱
62
注册时间
2012-6-16
在线时间
0 小时
 楼主| 发表于 2012-9-28 20:38:53 | 显示全部楼层
触摸屏主程序大循环:
while(1)
{
   key=KEY_Scan();
if(Pen_Point.Key_Sta==Key_Down)//触摸屏被按下
{
Pen_Int_Set(0);//关闭中断
do
{  
Convert_Pos();
Pen_Point.Key_Sta=Key_Up;
if(Pen_Point.X0>216&&Pen_Point.Y0<16)Load_Drow_Dialog();//清除
else 
{
Draw_Big_Point(Pen_Point.X0,Pen_Point.Y0);//画图 画大点     
GPIOC->ODR|=1<<1;    //PC1 上拉   就是PEN
}
 
}while(PEN==0);//如果PEN一直有效,则一直执行 这时有中断但不管它
Pen_Int_Set(1);//开启中断
}else delay_ms(10);
if(key==1)//KEY0按下,则执行校准程序
{
LCD_Clear(WHITE);//清屏
    Touch_Adjust();  //屏幕校准 
Save_Adjdata();  
Load_Drow_Dialog();
}
i++;
if(i==20)
{
i=0;
LED0=!LED0;
}
};
回复 支持 反对

使用道具 举报

6

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
62
金钱
62
注册时间
2012-6-16
在线时间
0 小时
 楼主| 发表于 2012-9-28 21:41:15 | 显示全部楼层
在论坛里找到了答案,链接:http://www.openedv.com/posts/list/1813.htm
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-28 02:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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