完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我正在努力让显示器连接到 FMC 总线并运行。
问题是显示屏始终保持黑色。 我遵循了 TouchGFX 文档,并根据 TouchGFX AL Development 实现了代码。我使用了场景“FMC 和 SPI 显示接口”并实现了该章中描述的代码。 我使用 STM32CubeMx 设置硬件并生成代码(用于 IAR EWB)。然后 TouchGFX Designer 用于生成图形。然后在STM32CubeMx中重写代码,然后使用IAR EWB实现剩下的。我在 STM32CubeMx 中启用了 FreeRTOS,并且 MX_TouchGFX_Process() 正在任务中运行。 我已经为显示器(带有 ILI9341 驱动程序的 Winstar 2.4" 320x240)制作了设置代码。设置代码已经过测试,我可以向/从显示器发送和接收数据。 Vsync (FMARK) 正在工作并为 touchgfx vsync (OSWrappers::signalVSync();) 更新信号量。 我可以看到 touchGFX 的 tick() 正在不断更新。 但是显示器一直是黑色的。 我在 TouchGFX 设计器中制作了一个简单的屏幕,只显示一张图片。当我在 TouchGFX 设计器中运行模拟器时,它的行为符合预期。 如果我查看 touchGFX 帧缓冲区,整个缓冲区为 0,所以看起来它从未更新过。 如果我在 TouchGFXHAL::flushFrameBuffer() 中放置一个断点,然后用例如 0xf000(蓝色)填充帧缓冲区,然后在 TouchGFXHAL::flushFrameBuffer() 中运行传输代码,则显示变为蓝色。所以从那里开始。帧缓冲区的填充似乎是在 TouchGFX 库中完成的,所以我无法调试。 我用过的版本: STM32CubeMx:6.3.0 TouchGFX 设计师:4.17.0 IAR EWB:8.50.9 我正在使用 STM32H7B3I-EVAL,我们已经为显示器制作了适配器板。 我只使用 STM32H7 的内部存储器(代码和帧缓冲区数据) 知道有什么问题吗? |
|
相关推荐
1个回答
|
|
不幸的是,这是代码错误。
我正在使用双帧缓冲区策略,并且在 TouchGFXHAL::flushFrameBuffer() 中我使用了 getTFTFrameBuffer() 而不是 getClientFrameBuffer()。 然后我总是得到指向 framebuffer1 开始的指针,而不是指向当前缓冲区的指针。 使用 getClientFrameBuffer() 解决了这个问题,我在屏幕上看到了图片。 |
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2558 浏览 1 评论
3186 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1753 浏览 1 评论
3583 浏览 6 评论
5960 浏览 21 评论
918浏览 4评论
1296浏览 4评论
在Linux上安装Atollic TRUEStudio的步骤有哪些呢?
560浏览 3评论
使用DMA激活某些外设会以导致外设无法工作的方式生成代码是怎么回事
1282浏览 3评论
1334浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-1 02:06 , Processed in 0.974458 second(s), Total 76, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号