STM32F429 OTG和高分辨率LCD+SDRAM无法同时使用,怎么解决?

2019-12-13 18:31发布

如题:我正在做一个板子,使用STM32F429IGT6,包含USB(OTG)和LCD,内容很简单,通过OTG读取U盘里的BMP文件,显示在LCD上。
之前使用F429_DISCO(LCD分辨率320*240)可以正常工作,现在是想要把这个图片显示在分辨率较高的显示屏上(800*600)或(1024*768)。
目前发现的问题,800*600分辨率下,LCD的缓冲区使用外部SDRAM,则无法识别USB;如果使用内部SRAM,则有一定的几率的识别USB成功(当然此时由于内部SRAM太小,显示屏只能显示一部分);如果关掉LCD,则USB每次都能识别成功。

有大神做过之类的东西吗?高分辨率屏和USB同时使用的情况?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
flash3g
1楼-- · 2019-12-13 21:09
 精彩回答 2  元偷偷看……
zqf441775525
2楼-- · 2019-12-14 02:14
flash3g 发表于 2019-2-11 01:08
STM32的USB是中断处理的,调高USB的中断优先级试试看

LCD刷屏应该是没有中断的吧?目前就只有USB的中断
wye11083
3楼-- · 2019-12-14 08:05
zqf441775525 发表于 2019-2-11 08:09
LCD刷屏应该是没有中断的吧?目前就只有USB的中断

lcd貌似是要占用dma的。然而sdram带宽撑死也就200mb左右吧。f4我当时调的是100mhz。在sdram里面跑程序速度要比tcm慢3倍(尚可接受)。带高分屏基本上把dma占满了的。你应该把usb中断之类的数据处理丢tcm里面再试试,尽量避开总线争用,避免死等。看上去像是总线冲突,导致usb超时了(dma占用总线时cpu只能干等)。
astankvai
4楼-- · 2019-12-14 10:07
这个和堆有关。USB里用了alloc函数。

一周热门 更多>