This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

StarterWare的rasterDisplay工程中LCD显示问题:

Other Parts Discussed in Thread: TMDXEVM3358

开发板用的是TI官方TMDXEVM3358,我在原来的rasterDisplay.c中定义了一个数据缓冲区:

#define LCD_WIDTH 480
#define LCD_HEIGHT 272
unsigned int LCDBuffer[LCD_WIDTH*LCD_HEIGHT+8];

然后在程序中将原来的显示代码去掉,修改成自己加的代码,如下:

memcpy(LCDBuffer, image1, sizeof(LCDBuffer));
RasterDMAFBConfig(LCDC_INSTANCE, (unsigned int)LCDBuffer, (unsigned int)LCDBuffer+sizeof(LCDBuffer)-2, 0);
RasterDMAFBConfig(LCDC_INSTANCE, (unsigned int)LCDBuffer, (unsigned int)LCDBuffer+sizeof(LCDBuffer)-2, 1);

用意就是将原来显示的image1数组中数据全部复制到新定义的LCDBuffer中,再将LCDBuffer指针传给LCD DMA的起始和终此缓冲区寄存器。

但在开发板中运行后,显示的LCD屏中有部分乱码,如下:

而将上面三行语句换回下述语句时就显示正常:

RasterDMAFBConfig(LCDC_INSTANCE, (unsigned int)image1, (unsigned int)image1+sizeof(LCDBuffer)-2, 0);
RasterDMAFBConfig(LCDC_INSTANCE, (unsigned int)image1, (unsigned int)image1+sizeof(LCDBuffer)-2, 1);

另外一个问题是如下图所示:

image1数组中,前面8个数据是什么?为何会有该8个数据,而且也是直接传给DMA寄存器的?