大家好:
描述一下我遇到的情形:
手头上有一块LM3S9B96的开发板,上面带的是320x240的TFT,我的目标是换成640x480的TFT!
TFT的厂家是kitronix,在kitronix官网上没有找到640x480的TFT,找到了一种800x480的屏,但是800x480的屏的驱动芯片是ssd1963,而LM3S9B96开发板上的320x240的驱动芯片是ssd2119.问题的难点就在这里:640x800屏的驱动程序怎么来写?
小弟我想到了几个解决途径,请大侠指点:
1. 参考LM3S9B96开发板图形库中的320x240的驱动程序自己编写800x480屏的驱动程序
2. LM3S9B92开发板标配的是kitronix的800x480屏,参考LM3S9B92开发板图形库例程来编写800x480屏的驱动程序
3. 寻找其他厂家的640x480的TFT,自己编写屏的驱动程序
请各位大侠指点一下这三个途径的可行性以及要注意的要点。或者提供更好的解决途径!
是SPI的不,如是并口的很好办
http://shop34182318.taobao.com/
https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
回复 楼主 tuzihog 的帖子
我觉得把第一种和第二种屏的驱动都看看,分析一下。
好的,正在研究驱动程序
各位能推荐个厂家不?
TFT
320x240
4.3'
touch(opt)
1. Ti的图形驱动库提供一个接口,你只需要实现接口中定义的函数即可以实现LCD的显示。
接口定义如下
01. typedef struct
02. {
03. long lSize;
04. void *pvDisplayData;
05. unsigned short usWidth;
06. unsigned short usHeight;
07. void (*pfnPixelDraw)(void *pvDisplayData, long lX, long lY,
08. unsigned long ulValue);
09. void (*pfnPixelDrawMultiple)(void *pvDisplayData, long Lx, long lY,
10. long lx0,long lCount, long lBPP,
11. const unsigned char *pucData,
12. const unsigned char *pucPalette);
13. void (*pfnLineDrawH)(void *pvDisplayData, long lX1, long lX2, long lY,
14. unsigned long ulValue);
15. void (*pfnLineDrawV)(void *pvDisplayData, long lX, long lY1, long lY2,
16. unsigned long ulValue);
17. void (*pfnRectFill)(void *pvDisplayData, const tRectangle *pRect,
18. unsigned long ulValue);
19. unsigned long (*pfnColorTranslate)(void *pvDisplayData,
20. unsigned long ulValue);
21. void (*pfnFlush)(void *pvDisplayData);
22. }
23. tDisplay
编号
回调函数指针 函数功能
1 pfnPixelDraw 绘制一个点
22 pfnPixelDrawMultiple 绘制多个点
3 pfnLineDrawH 绘制一条水平线
4 pfnLineDrawV 绘制一条垂直线
5 pfnRectFill 填充一个方块
6 pfnColorTranslate 颜色模式变换
7 pfnFlush 刷新图形显示
对照驱动芯片的手册,你实现上面的时序后,就可以调用TI的图形驱动库的函数实现显示
回复 楼主 tuzihog 的帖子
楼主,项目进行得怎么样了?我目前正好碰到类似项目,share一下啊。