程序上使用DMA,进行数据移动刷屏。
关键代码使用寄存器的方式进行 *** 作,而不是使用库函数。
这样看你的TFT空机器的型号了,不同型号控制方法不同,一般型号的区域块写代码基本都这样的
/*
函数名: void BlockWrite(u16 Xstart,u16 Xend,u16 Ystart,u16 Yend)
输入 : Xstart :X坐标起点
Xend :X坐标结尾
Ystart:Y坐标起点
Yend: Y坐标结尾
返回 : 无
*/
void BlockWrite(u16 Xstart,u16 Xend,u16 Ystart,u16 Yend)
{
LCD_Write_Com(0x2a) //设置X轴
LCD_Write_Data((Xstart>>8)&0x00ff) //X起点
LCD_Write_Data((Xstart&0xff))
LCD_Write_Data((Xend>>8)&0x00ff) //X结尾
LCD_Write_Data((Xend&0x00ff))
LCD_Write_Com(0x2b)//设置Y轴
LCD_Write_Data((Ystart>>8)&0x00ff) //y起点
LCD_Write_Data((Ystart&0x00ff))
LCD_Write_Data((Yend>>8)&0x00ff) //y结尾
LCD_Write_Data((Yend&0x00ff))
LCD_Write_Com(0x2c) //开始写
}
你现在看到的这两个函数LCD_ShowString()ChineseChar()是你在上层调用的,具体的函数定义你要去看底层是怎么实现的。我先简单介绍下着两个函数LCD_ShowString(12,60,colors[0],colors[7],"-")应该是讲屏幕上x=12,y=60的地方显示一个“-”字符,字符颜色应该是你定义的colors[0],TFT屏的背景颜色是colors[7],这两个是你函数库自己定义的,可以改。
ChineseChar(20,60,1,colors[0],colors[7],1) //带 这个函数和上面那个函数大致相同,至于为什么会显示“带”,是因为最后那个1,这个程序你应该定义一个数组,在这个数组里面对你所要显示的字全部编码并存在这个数组中,最后你只需用想调用数组下标那样调用这个汉子。
至于你想显示班级、姓名 只需用把班级姓名进行编码就可以调用这个ChineseChar()函数进行显示
其实很简单的,只需用该几步就可以达到你想要的,不难~~
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)