以前曾使用过不少的Freescale的产品,板上的外设资源也十分丰富,其中就有一款MDM-2802显示屏,见图1所示。
![image.png](//file.elecfans.com/web2/M00/64/10/poYBAGMFiI2AbYCjAAR3bXXD6og160.png)
图1 MDM-2802显示屏
尽管对开发板已很少使用,但其显示屏还不妨继续使用。
别看该显示屏的引脚比较多,但从图2的原理图却可以发现,它却是一款以SPI方式工作的器件,其控制芯片为ILI9341,该显示屏的几何尺寸为2.8寸,其分辨率为240*320。
![image.png](//file.elecfans.com/web2/M00/64/10/poYBAGMFiJ-AV6c0AAEhksPQHiU061.png)
图2 引脚分配
为了用CW32F030开发板来驱动该显示屏,其引脚连接关系为:
SCLK --- PB5
MISO--- PB4
CS --- PA15
RST --- NRST
BLC --- 3.3V
VDD---3.3V
GND---GND
为便于高低电平的输出,其语句定义如下“”
#define
CLR_CLK() PB05_SETLOW()
#define
SET_CLK() PB05_SETHIGH()
#define
CLR_SDA() PB04_SETLOW()
#define SET_SDA() PB04_SETHIGH()
#define
CLR_CS() PA15_SETLOW()
#define SET_CS() PA15_SETHIGH()
对使用引脚的功能配置函数为:
void app_tft_init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.Pins =
GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5;
GPIO_InitStructure.Mode =
GPIO_MODE_OUTPUT_PP;
GPIO_InitStructure.IT = GPIO_IT_NONE;
GPIO_Init(CW_GPIOB,
&GPIO_InitStructure);
GPIO_InitStructure.Pins =GPIO_PIN_15;
GPIO_InitStructure.Mode =
GPIO_MODE_OUTPUT_PP;
GPIO_InitStructure.IT = GPIO_IT_NONE;
GPIO_Init(CW_GPIOA,
&GPIO_InitStructure);
}
该显示屏的初始化函数为:
![image.png](//file.elecfans.com/web2/M00/64/11/poYBAGMFia6AVnE4AACRTKum5C8373.png)
![image.png](//file.elecfans.com/web2/M00/64/AB/pYYBAGMFicqAEs5IAACEEQzK3dc051.png)
![image.png](//file.elecfans.com/web2/M00/64/11/poYBAGMFifKAAVyaAAA7Z_oXe5E162.png)
以模拟方式实现字节数据发送的函数为:
![image.png](//file.elecfans.com/web2/M00/64/11/poYBAGMFii-AC32PAAApw3audcQ533.png)
由于该显示屏没有配置D/C引脚,因而它在发送指令和数据时是通过2个函数来完成的,其不同点也仅有一处,其内容如下:
![image.png](//file.elecfans.com/web2/M00/64/11/poYBAGMFil-ARKs5AAAxptT0QJw361.png)
实现字符及字符串显示的函数为:
![image.png](//file.elecfans.com/web2/M00/64/11/poYBAGMFiqSAdVnOAAB7Ur3T8Ow003.png)
![image.png](//file.elecfans.com/web2/M00/64/11/poYBAGMFituAN82EAAArLtbVcIw010.png)
![image.png](//file.elecfans.com/web2/M00/64/11/poYBAGMFiyaARpEUAAA5FcwVET8074.png)
实现图片显示的函数为:
![image.png](//file.elecfans.com/web2/M00/64/11/poYBAGMFi9GAQaB4AAAsddyNUsw681.png)
绘制直线、矩形及圆的函数为:
![image.png](//file.elecfans.com/web2/M00/64/AC/pYYBAGMFjAmAII_4AAB0b1hc1OM057.png)
![image.png](//file.elecfans.com/web2/M00/64/12/poYBAGMFjCGAQxKiAAAiPqVyO7k672.png)
![image.png](//file.elecfans.com/web2/M00/64/12/poYBAGMFjD2AA1mYAABbEUqyZ-M774.png)
实现图3所示效果的主程序为:
![image.png](//file.elecfans.com/web2/M00/64/AC/pYYBAGMFjIGAHgVtAABcMdpr-AA954.png)
![image.png](//file.elecfans.com/web2/M00/64/AC/pYYBAGMFjKaALGSjAATRN-3txps503.png)
图3 显示效果
|