完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我用的屏幕是普通的1.8寸TFT屏幕,使用SPI传输数据正常,spi显示图片也没有问题,我想使用DMA+SPI去发送图片,结果导致成了这个样子,SPI和DMA设置的数据长度都是八位,图片是16位BMP 128*160 ,数组大小为【40960】,请问可能是什么错误啊?这是原图,这是使用SPI正常显示效果 |
|
相关推荐
4个回答
|
|
想办法把发出去的数据看一下就明白了,看看有没有啥手段
|
|
|
|
问题已解决,由于图片数据是16位的且低位在前,DMA设置的是8位,导致显示错误,只需把图片数据改为16位的高位位在前即可。但是我又遇到了新的问题,发送图片后,使用SPI发送数据会导致都无法正常显示,会乱码闪屏
|
|
|
|
把速度降低一点,用逻辑分析仪抓一个包的数据,看看是否跟你用非DMA的数据是否一样。这样就可以找到问题的所在。
|
|
|
|
很抱歉,无法直接分析和确定问题的原因。有关STM32使用HAL库的SPI+DMA发送数据导致TFT屏幕图片显示错误的问题,可能有多种原因。
首先,请确保您的SPI和DMA配置正确。确保数据长度和位序设置正确,以及传输速度和时钟设置正确。您可以参考相关的STM32参考手册和HAL库的文档来确认您的配置是否正确。 其次,可能是您的DMA缓冲区设置不正确导致数据传输错误。请确保DMA缓冲区地址和大小设置正确,并且能够正确地存储和传输数据。 另外,也有可能是您的TFT屏幕驱动程序有问题,无法正确解析16位的BMP图片数据。请检查您的屏幕驱动程序,确保能够正确地解析和显示16位的BMP图片数据。 最后,您可以尝试减小图片的大小,先测试较小的图片,以确认问题是否与图片大小有关。如果较小的图片可以正常显示,那么可能是您的DMA和SPI的设置不支持较大的数据传输。 如果您仍然无法解决问题,建议您仔细检查您的代码和配置,确保没有其他问题。您还可以查找相关的STM32社区或论坛,咨询其他开发者是否遇到过类似的问题,或者直接向STM32的技术支持团队寻求帮助。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
364 浏览 0 评论
356 浏览 0 评论
嵌入式学习-搭建自己的ubuntu系统之ubuntu网络设置
526 浏览 0 评论
龙芯中科胡伟武:3B6600 八核桌面 CPU 性能将达到英特尔中高端酷睿 12~13 代水平
574 浏览 0 评论
树莓派Pico 2发布,搭载RP2350双核RISC-V和Arm Cortex-M33微控制器!
542 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
10691 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-16 06:38 , Processed in 0.585374 second(s), Total 45, Slave 39 queries .
Powered by 电子发烧友网
© 2015 www.ws-dc.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号