TFT简述

这个实验是我认为比较麻烦的一个实验了,有一定难度。 主要是我看到书和我使用的开发板不是配套的,所以引出了很多麻烦。

基本步骤

  1. LCD初始化
  2. 刷屏
  3. 做你要做的事

出现的问题

  1. 对自己使用的LCD屏了解的不多。这是由于我使用的是普中的stm32的开发板,但我看的书的开发板是正点原子的,两个开发板的LCD是不一样的。普中的LCD是8位 的数据位,而正点原子的是16位,这就导致我使用书中例程的程序时,开发板的LCD没有反应,真的好气啊!然后我找到了普中的例程,仔细的看了一遍,发现 程序中提到普中的LCD是8位的,需要分两次传数据。

以下是对原子的例程的修改

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void LCD_WR_REG(u16 regval)
{
LCD->LCD_REG=regval<<8;//写入要写的寄存器序号
}

void LCD_WR_DATA(u16 data)
{
LCD->LCD_RAM=data<<8;
}

void LCD_WriteRAM(u16 RGB_Code)
{
LCD->LCD_RAM = RGB_Code&0xFF00;//写十六位GRAM
LCD->LCD_RAM = RGB_Code<<8;
}

  1. 解决完LCD的初始化问题后,还有LCD刷屏的问题。发现原子的刷屏程序也是用不了,参考普中的例程发现,普中在设置光标位置时,还设置了光标的结束位置, 就是给了2AH指令和2BH指令4个参数,问题得以解决。

  2. 在屏幕上打印文字。目前还在处理这个问题。问题解决。

一开始我打印出来的文字乱码,我把我的程序与官方的程序进行对比,检查了好几天也没有找出答案,真的好气。最后发现问题居然在字库上;我刚开始只是扫视了一眼, 觉得自己的字库和官方的好像是一样的就没有太多注意,直到最后实在没有办法复制官方的字库发现问题居然解决了..