你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

touchgfx4.20.0 页面层数比较多

[复制链接]
co水平线 提问时间:2024-1-15 17:33 / 未解决

页面层数比较多,添加了表格等控件,当点击最上层页面的时候,很容易出现卡死现象,通过stm32ide调试,找不到死机的地方,既不是进入死循环,也没进入硬件fault中断,像是ui任务死机了;请问这个怎么查找解决?

5de419f2d779732dda31fc61c52b48e.jpg

收藏 评论5 发布时间:2024-1-15 17:33

举报

5个回答
lugl 回答时间:2024-1-16 07:19:53

你可以先禁用几层,用printf来打印,如果你是用freertos是不是栈空间没有了。touchgfx_printf可以打印信息的。

butterflyspring 回答时间:2024-1-16 10:27:33
1. 可以看看其他任务是不是还在正常运行。

    可以将GUI的任务栈调大一些。

2. 也可以使能栈溢出检查试试。
co水平线 回答时间:2024-1-17 10:41:58

lugl 发表于 2024-1-16 07:19
你可以先禁用几层,用printf来打印,如果你是用freertos是不是栈空间没有了。touchgfx_printf可以打印 ...

[md]找到原因了,下面一层用的是动态图表控件,动态图表的由于需要8条曲线,这样就放了8个动态图表控件,而且点数太多了,定义了GraphScroll<1000>,也就是一条动态图表曲线就定义了有1000个点,这样最上层页面操作的时候,就会导致死机,如果把8条曲线换成1条,并且GraphScroll<1000>换成GraphScroll<20>,只画20个点,这样最上层页面操作的时候就不会死机;

co水平线 回答时间:2024-1-17 10:43:04

butterflyspring 发表于 2024-1-16 10:27</p>
<ol>
<li>
<p>可以看看其他任务是不是还在正常运行。</p>
<p>可以将GUI的任务栈调大一些。

找到原因了,下面一层用的是动态图表控件,动态图表的由于需要8条曲线,这样就放了8个动态图表控件,而且点数太多了,定义了GraphScroll<1000>,也就是一条动态图表曲线就定义了有1000个点,这样最上层页面操作的时候,就会导致死机,如果把8条曲线换成1条,并且GraphScroll<1000>换成GraphScroll<20>,只画20个点,这样最上层页面操作的时候就不会死机;现在需要看看你们说的这些解决办法,看下如何解决,应该是内存哪里不够的问题

lugl 回答时间:2024-1-17 11:00:09

co水平线 发表于 2024-1-17 10:43
找到原因了,下面一层用的是动态图表控件,动态图表的由于需要8条曲线,这样就放了8个动态图表控件, ...

[md]到就好呀,恭喜恭喜!

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版