以前曾使用过不少的Freescale的产品,板上的外设资源也十分丰富,其中就有一款MDM-2802显示屏,见图1所示。
图1 MDM-2802显示屏
尽管对开发板已很少使用,但其显示屏还不妨继续使用。
别看该显示屏的引脚比较多,但从图2的原理图却可以发现,它却是一款以SPI方式工作的器件,其控制芯片为ILI9341,该显示屏的几何尺寸为2.8寸,其分辨率为240*320。
图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);
}
该显示屏的初始化函数为:
以模拟方式实现字节数据发送的函数为:
由于该显示屏没有配置D/C引脚,因而它在发送指令和数据时是通过2个函数来完成的,其不同点也仅有一处,其内容如下:
实现字符及字符串显示的函数为:
实现图片显示的函数为:
绘制直线、矩形及圆的函数为:
实现图3所示效果的主程序为:
图3 显示效果
|