OpenEdv-开源电子网

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

关于lcd触摸屏程序卡死问题

[复制链接]

26

主题

84

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
359
金钱
359
注册时间
2019-6-11
在线时间
52 小时
发表于 2020-3-13 10:24:26 | 显示全部楼层 |阅读模式
1金钱
各位大佬好,遇到一个问题,先上图 1.jpg 图中这个变量是判断触摸屏是否初始化过的一个标志变量,这个在后面的中断里面会判断是否触摸屏初始化过了。我的问题就是,理论上这个判断是否初始化过,和程序的中断以及从整个框架运行应该没有很大关系,这个变量目的就是判断这个触摸是否初始化过,所以对程序不会有很大的影响。但是问题就出现在这个标志变量上。上图: 2.jpg 图中两个标号第一个是在中断中判断是否初始化过触摸屏在去执行相应的读取数据,第二个是发生中断不判断是否初始化过,我知道不能这么操作,需要线判断一下触摸屏是否初始化过了,但是先不讨论应用相关的,只说当前问题,两个工程代码一个中断中没有判断这个标志变量,一个源工程判断这个标志变量,其余代码全部是源工程代码,一摸一样。不判断标志变量的烧写后lcd死机不运行卡死屏幕白屏,判断标志变量的正常运行。两个代码就差这里。
问题就是这个原因为啥?理论上这个变量对程序应该没有太大影响,就是判断以下是否初始化过,我考虑过是否存在需要延时一会问题,加延时仍然不正常,只有这一种方法就是判断标志变量才能不死机。实在是考虑不清楚什么原因来请教一下。

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

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2020-3-13 18:43:13 | 显示全部楼层
本帖最后由 zuozhongkai 于 2020-3-13 18:45 编辑

这个肯定会有影响的!首先说中断,不管你有没有初始化触摸芯片,只要中断线上有干扰,那么就会进入中断。在系统运行的时候,当还没有运行到ft5426初始化函数之前,就有可能因为中断线有干扰而进入到中断,此时中断里面就会从ft5426里面读取触摸数据。这个时候FT5426还没初始化,因此就会出现卡死!所以中断里面从FT5426读取触摸数据的时候一定要在FT5426初始化以后!这就是添加判断的原因。
回复

使用道具 举报

26

主题

84

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
359
金钱
359
注册时间
2019-6-11
在线时间
52 小时
 楼主| 发表于 2020-3-16 09:27:19 | 显示全部楼层
zuozhongkai 发表于 2020-3-13 18:43
这个肯定会有影响的!首先说中断,不管你有没有初始化触摸芯片,只要中断线上有干扰,那么就会进入中断。在 ...

谢谢,首先我了解研究这些没用,但是,最起码想知道一下问题的发生从而避免以后遇到相同问题,你说的这个问题确实存在,在视频里面我看在写完初始化后做了几个测试的,在中断用printf测试程序的时候就没有加判断,也没有死机的问题,而且也打印出来触摸的个数。我也用源代码例程测试,但是发现软件包里的例程貌似和视频的写的应该不一样。所以问题的原因对比不出来。想用视频里的例程在去定位一下问题。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-25 07:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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