例如:
//将
/*#define SDA_H GPIO_SetBits(GPIO_TFT,SDA)
#define SDA_L GPIO_ResetBits(GPIO_TFT,SDA)
#define SCL_H GPIO_SetBits(GPIO_TFT,SCL)
#define SCL_L GPIO_ResetBits(GPIO_TFT,SCL)
#define CS_H GPIO_SetBits(GPIO_TFT,CS)
#define CS_L GPIO_ResetBits(GPIO_TFT,CS)
#define RESET_H GPIO_SetBits(GPIO_TFT,RESET)
#define RESET_L GPIO_ResetBits(GPIO_TFT,RESET)
#define RS_H GPIO_SetBits(GPIO_TFT,RS)
#define RS_L GPIO_ResetBits(GPIO_TFT,RS)
*/
//换成寄存器操作,提高速度
#define SDA_H GPIO_TFT->BSRR = SDA
#define SDA_L GPIO_TFT->BRR = SDA
#define SCL_H GPIO_TFT->BSRR = SCL
#define SCL_L GPIO_TFT->BRR = SCL
#define CS_H GPIO_TFT->BSRR = CS
#define CS_L GPIO_TFT->BRR = CS
#define RESET_H GPIO_TFT->BSRR = RESET
#define RESET_L GPIO_TFT->BRR = RESET
#define RS_H GPIO_TFT->BSRR = RS
#define RS_L GPIO_TFT->BRR = RS
对线条进行操作的相信大家应该非常了解了,这里详细解释下对窗口进行操作的一些细节:
窗口:也就是可以进行填充的区域,液晶驱动里面,每个物理像素对应的坐标已经是固定的,但是窗口可以不固定,窗口就是可以进行填充的区域,你如果要在窗口外面进行填充,是无法进行的,同样的,当你填充到窗口边缘的时候,会自动跳转到下一行进行填充,只要你设定的点正确,那么整个你设定的窗口区域都会被填充完毕,这段期间你要做的知识单纯的填充数据,不需要进行设定点的操作,也不需要换行,这样子屏幕填充矩阵操作看起来效果就不会有刷屏的感觉了.
填充行:对行进行填充,只需要在换行的时候进行坐标切换,我用整个函数,慢了30万个点每秒把.
在优化的时候,我只是抛砖引玉的给大家介绍下怎么用什么样的思路进行优化,细节性的东西还是要大家好好去琢磨的.
初稿到这边就差不多结束了,后面会陆续补充,只要大家想了解都可互相探讨.
|