OpenEdv-开源电子网

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

触摸屏问题。。。。求救啊

[复制链接]

16

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
125
金钱
125
注册时间
2012-10-5
在线时间
0 小时
发表于 2012-10-24 20:54:18 | 显示全部楼层 |阅读模式

while(1)
 { 
   key=KEY_Scan();
  if(Pen_Point.Key_Sta==Key_Down)//触摸屏被按下
  {
   en_Int_Set(0);//关闭中断
   do
   {
    Convert_Pos();
    en_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一直有效,则一直执行
   en_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;
  }
 };        这是触摸屏的例子的函数。。。。里面的do。。。while(pen==0)循环的作用是画图和
RET清屏,我想请教的是,当ret之后,换图时灯就不闪了,说明一直在do。。while(pen==0)的循环中,可是在do。。while循环中,不是有GPIOC->ODR|=1<<1;    //PC1 上拉  这个语句吗??pen不就是PC1吗,可是执行完GPIOC->ODR|=1<<1,PC1=1了,还怎么循环呢??

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2012-10-24 21:18:01 | 显示全部楼层
回复【楼主位】yeyuxiang1990:
---------------------------------
这个问题是比较怪异的,你在while里面增加一些延时,就可以解决。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

16

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
125
金钱
125
注册时间
2012-10-5
在线时间
0 小时
 楼主| 发表于 2012-10-24 22:00:20 | 显示全部楼层
原子哥你看我说的对吗??当手触摸屏是PC1也就是PEN由高电平变为了低电平,下降沿引起中断,当一直画的时候,PEN一直是等于0的,所有一直画图。。。可是问题是:当我的手松开时,PEN=1了,可是为什么程序还是停在DO.....while循环中。(由灯没有闪烁得知,循环没有退出),可是当按下RST键,灯就闪了???到底是我哪里理解错了,这个问题困扰了我好多天了。。。一直进行不下去了
回复 支持 反对

使用道具 举报

16

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
125
金钱
125
注册时间
2012-10-5
在线时间
0 小时
 楼主| 发表于 2012-10-24 22:02:24 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
原子哥你看我说的对吗??当手触摸屏是PC1也就是PEN由高电平变为了低电平,下降沿引起中断,当一直画的时候,PEN一直是等于0的,所有一直画图。。。可是问题是:当我的手松开时,PEN=1了,可是为什么程序还是停在DO.....while循环中。(由灯没有闪烁得知,循环没有退出),可是当按下RST键,灯就闪了???到底是我哪里理解错了,这个问题困扰了我好多天了。。。一直进行不下去了

回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2012-10-24 23:01:59 | 显示全部楼层
回复【3楼】yeyuxiang1990:
---------------------------------
是这么理解的,但是它就是不跳出,这里我也是很奇怪的。
理解不过的就绕过吧,呵呵。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

16

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
125
金钱
125
注册时间
2012-10-5
在线时间
0 小时
 楼主| 发表于 2012-10-25 18:23:57 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
哦,那我就等等吧。。
回复 支持 反对

使用道具 举报

16

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
125
金钱
125
注册时间
2012-10-5
在线时间
0 小时
 楼主| 发表于 2012-10-25 18:30:08 | 显示全部楼层
哦,谢谢原子哥。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-28 16:41

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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