完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
当系统时钟设置为 350MHz 时,我的 H750B-DK 板的屏幕每隔 12 秒就奇怪地闪烁一次。以前我在 400MHz 时第一次出现问题并且闪烁大约每 10 秒发生一次。在 480Mhz(最大)时,问题似乎消失了。
问题在实施新功能(包含所有 MQTT 发布消息功能的新类)后随机出现。我已经连接了一个类来访问滴答事件,但其中只有一个 if 语句,代码很少,而且它不是每 12 秒运行一次,而是在硬件事件发生时(MQTT 断开连接)运行,所以不是这样. 我还在我的主屏幕中使用了滴答事件,但只有一个空占位符 if 语句和另一个用于检查 FreeRTOS 队列数据的 if 语句(用于将错误代码从硬件发送到 TouchGFX 以供显示)。 我还没有使用自定义中断或定时器例程。这就是为什么我不知道这样的问题怎么突然突然出现(因为据我所知,我的代码大小根本不应该影响屏幕渲染,对吧?)。 我寻找了一些对 invalidate() 的不必要调用,但没有在计时器上调用 invalidate() (除了前面提到的那个 if 语句)。我所有的无效都发生在按下按钮时。 我宁愿找到这个问题的原因,也不愿使用 480MHz 祈祷问题不会再次出现,因为我正在开发此应用程序的大约 1/3,而且以最大频率出现的问题也将是灾难性的。 有谁知道这里可能出了什么问题?我宁愿避免在线发布我的整个项目,但如果某些文件有帮助,我可以发布它们。 附言。这可能是一个屏幕上同时有太多可绘制对象(甚至是不可见的)的问题吗?因为我计划在一些滑动容器的帮助下只使用一个屏幕来显示所有内容以简化我的工作(MQTT、CAN、SD 卡)。但是刚才我已经删除了两个我之前计划使用但放弃了这个想法的自定义容器,并且这个问题似乎在 400MHz 时消失了。是这个吗?我应该转向使用多个屏幕吗? 编辑:好的,所以我添加了可绘制对象,直到 RAM 无法再处理它,但即使在今天的 400MHz 下问题也没有返回,老实说这并不是很令人放心,因为问题的根源似乎神奇地消失了,因此可以随时返回。 无论如何,我已经开始投入一些时间来切换到 MVP 设计模式,因为我开始看到它如何有可能使我未来的工作更轻松,并使项目整体变得更好。 我仍然非常感谢任何对昨天可能出了什么问题的人有任何想法的任何意见。 |
|
相关推荐
1个回答
|
|
好的,我想我们知道问题出在哪里了。我们对 TBS 版本 3.0.8 进行了更正以解决此问题。所以我建议您尝试使用最新版本的 TBS,以及 TouchGFX Designer 4.20.0。
如果您想继续使用 TouchGFX Designer 4.18.1,您需要在 STM32CubeIDE 中激活“最优化”选项。这是你如何做到的: 1-右键单击您的项目>属性 2- 在设置 > 工具设置 > MCU GCC 编译器 > 优化 > 选择优化级别“最优化 (-O3) 用 MCU G++ Compiler > Optimization > Optimize most 做同样的事情 3-对发布配置做同样的事情 4- 应用并关闭,然后重新编译您的项目。 |
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2648 浏览 1 评论
3213 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1787 浏览 1 评论
3616 浏览 6 评论
5996 浏览 21 评论
944浏览 4评论
1318浏览 4评论
在Linux上安装Atollic TRUEStudio的步骤有哪些呢?
588浏览 3评论
使用DMA激活某些外设会以导致外设无法工作的方式生成代码是怎么回事
1307浏览 3评论
1367浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-27 08:07 , Processed in 1.088887 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号