请问屏幕上画面会不停的往上跑可能是什么原因?
时间:12-13
整理:3721RD
点击:
使用stm32f429 + SDRAM,驱动240320屏幕(ST7789V), 点亮了
在main函数的while前给一个sdram赋值
for(i=0;i<250;i++)
{
*(__IO uint32_t*) (SDRAM_BANK_ADDR + BUFFER_OFFSET + 2000 +
4*i) = 0x00000000;
}
实际显示效果是:
几条线重叠在一起,变成了横跨屏幕的整行线,同时不停的往屏幕上方跑,跑完了又从屏幕
下方出现
请问这可能是程序哪里写错了?
在main函数的while前给一个sdram赋值
for(i=0;i<250;i++)
{
*(__IO uint32_t*) (SDRAM_BANK_ADDR + BUFFER_OFFSET + 2000 +
4*i) = 0x00000000;
}
实际显示效果是:
几条线重叠在一起,变成了横跨屏幕的整行线,同时不停的往屏幕上方跑,跑完了又从屏幕
下方出现
请问这可能是程序哪里写错了?
见图片,实际上这根线是不停往上移动的
跑的话是分辨率不对
就是说,给显存分配的空间和分辨率对不上。
除了物理尺寸,还有一个可能就是ram时序,你想读16个数,实际上只读了15个或17个。
懵了
我把程序里的设置的240和320交换,发现画的短线不再重复堆叠成一整行,而是有限长的
一小段,到那时仍然往上跑
再把320改成321,显示就好了
太奇怪了
进一步修改,把行列换回到240x320这个和屏幕参数匹配的值
但是把240改成241,则一切正常。。。,各种显示都没有问题
看来我猜对了。。。十几年前刚开始学着调电路的时候遇到过一样的问题
找你们做硬件的人来解决
这个问题是?
连线错了?
硬件放假了
我会一点硬件方面的