在测试麻雀一号LCD显示颜色渐变和SD卡内图片时,发现颜色老是不对,不知道是什么问题???本来准备要要做一些图片显示的,一直卡住了。显示的图片偏白。
而且是偶尔可以正常显示,大多时候不行。有时候随便修改一下文件编译下载可以,有时候又不行。测试多次总感觉LCD颜色数据没正确写到LCD控制器里。
下面是原图和LCD上显示的图对比。
现在又正常了,让人琢磨不透。
颜色条测试:
- static int test_lcd_color(int argc, char *argv[])
- {
- int i;
- uint16_t color;
- /* draw a color */
- lcd_clear(BLACK);
- //RED
- for (i = 1; i < 16; i ++)
- {
- color = (i)<<12;
- rt_kprintf("color = %04X.\n",color);
- lcd_fill(i*12,20,12*(i+1),50,color);
- //lcd_clear(color);
- }
- rt_thread_mdelay(5);
- //GREEN
- for (i = 1; i < 16; i ++)
- {
- color = (i)<<7;
- rt_kprintf("color = %04X.\n",color);
- lcd_fill(i*12,70,12*(i+1),100,color);
- //lcd_clear(color);
- }
- rt_thread_mdelay(5);
- //BLUE
- for (i = 1; i < 16; i ++)
- {
- color = (i<<1);
- rt_kprintf("color = %04X.\n",color);
- lcd_fill(i*12,120,12*(i+1),150,color);
- //lcd_clear(color);
- }
- rt_thread_mdelay(5);
- //GRAY
- for (i = 1; i < 32; i ++)
- {
- color = (i<<11) + (i<<6) + i;
- rt_kprintf("color = %04X.\n",color);
- lcd_fill(i*6,170,6*(i+1),200,color);
- //lcd_clear(color);
- }
- }
希望有经验的提示下,是哪个地方引起的问题?LCD写数据要注意什么?
|