|
@@ -1,11 +1,7 @@
|
|
|
/*
|
|
|
- * File : drv_lcd.c
|
|
|
- * This file is part of RT-Thread RTOS
|
|
|
- * COPYRIGHT (C) 2009 RT-Thread Develop Team
|
|
|
+ * Copyright (c) 2006-2018, RT-Thread Development Team
|
|
|
*
|
|
|
- * The license and distribution terms for this file may be
|
|
|
- * found in the file LICENSE in this distribution or at
|
|
|
- * http://www.rt-thread.org/license/LICENSE
|
|
|
+ * SPDX-License-Identifier: Apache-2.0
|
|
|
*
|
|
|
* Change Logs:
|
|
|
* Date Author Notes
|
|
@@ -25,13 +21,13 @@
|
|
|
|
|
|
typedef struct
|
|
|
{
|
|
|
- rt_uint16_t width; //LCD 宽度
|
|
|
- rt_uint16_t height; //LCD 高度
|
|
|
+ rt_uint16_t width; //LCD 锟斤拷锟�
|
|
|
+ rt_uint16_t height; //LCD 锟竭讹拷
|
|
|
rt_uint16_t id; //LCD ID
|
|
|
- rt_uint8_t dir; //横屏还是竖屏控制:0,竖屏;1,横屏。
|
|
|
- rt_uint16_t wramcmd; //开始写gram指令
|
|
|
- rt_uint16_t setxcmd; //设置x坐标指令
|
|
|
- rt_uint16_t setycmd; //设置y坐标指令
|
|
|
+ rt_uint8_t dir; //锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟狡o拷0锟斤拷锟斤拷锟斤拷锟斤拷1锟斤拷锟斤拷锟斤拷锟斤拷
|
|
|
+ rt_uint16_t wramcmd; //锟斤拷始写gram指锟斤拷
|
|
|
+ rt_uint16_t setxcmd; //锟斤拷锟斤拷x锟斤拷锟斤拷指锟斤拷
|
|
|
+ rt_uint16_t setycmd; //锟斤拷锟斤拷y锟斤拷锟斤拷指锟斤拷
|
|
|
} lcd_info_t;
|
|
|
|
|
|
typedef struct
|
|
@@ -40,22 +36,22 @@ typedef struct
|
|
|
volatile rt_uint16_t ram;
|
|
|
} lcd_ili9341_t;
|
|
|
|
|
|
-//使用NOR/SRAM的 Bank1.sector1,地址位HADDR[27,26]=00 A18作为数据命令区分线
|
|
|
-//注意设置时STM32内部会右移一位对其!
|
|
|
+//使锟斤拷NOR/SRAM锟斤拷 Bank1.sector1,锟斤拷址位HADDR[27,26]=00 A18锟斤拷为锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷
|
|
|
+//注锟斤拷锟斤拷锟斤拷时STM32锟节诧拷锟斤拷锟斤拷锟斤拷一位锟斤拷锟斤拷!
|
|
|
#define LCD_ILI9341_BASE ((rt_uint32_t)(0x60000000 | 0x0007FFFE))
|
|
|
#define ili9341 ((lcd_ili9341_t *) LCD_ILI9341_BASE)
|
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
-//扫描方向定义
|
|
|
-#define L2R_U2D 0 //从左到右,从上到下
|
|
|
-#define L2R_D2U 1 //从左到右,从下到上
|
|
|
-#define R2L_U2D 2 //从右到左,从上到下
|
|
|
-#define R2L_D2U 3 //从右到左,从下到上
|
|
|
-#define U2D_L2R 4 //从上到下,从左到右
|
|
|
-#define U2D_R2L 5 //从上到下,从右到左
|
|
|
-#define D2U_L2R 6 //从下到上,从左到右
|
|
|
-#define D2U_R2L 7 //从下到上,从右到左
|
|
|
-#define DFT_SCAN_DIR L2R_U2D //默认的扫描方向
|
|
|
+//扫锟借方锟斤拷锟斤拷
|
|
|
+#define L2R_U2D 0 //锟斤拷锟斤拷锟斤拷,锟斤拷锟较碉拷锟斤拷
|
|
|
+#define L2R_D2U 1 //锟斤拷锟斤拷锟斤拷,锟斤拷锟铰碉拷锟斤拷
|
|
|
+#define R2L_U2D 2 //锟斤拷锟揭碉拷锟斤拷,锟斤拷锟较碉拷锟斤拷
|
|
|
+#define R2L_D2U 3 //锟斤拷锟揭碉拷锟斤拷,锟斤拷锟铰碉拷锟斤拷
|
|
|
+#define U2D_L2R 4 //锟斤拷锟较碉拷锟斤拷,锟斤拷锟斤拷锟斤拷
|
|
|
+#define U2D_R2L 5 //锟斤拷锟较碉拷锟斤拷,锟斤拷锟揭碉拷锟斤拷
|
|
|
+#define D2U_L2R 6 //锟斤拷锟铰碉拷锟斤拷,锟斤拷锟斤拷锟斤拷
|
|
|
+#define D2U_R2L 7 //锟斤拷锟铰碉拷锟斤拷,锟斤拷锟揭碉拷锟斤拷
|
|
|
+#define DFT_SCAN_DIR L2R_U2D //默锟较碉拷扫锟借方锟斤拷
|
|
|
|
|
|
static lcd_info_t lcddev;
|
|
|
LTDC_HandleTypeDef LtdcHandler;
|
|
@@ -743,28 +739,28 @@ rt_uint16_t ili9341_bgr2rgb(rt_uint16_t value)
|
|
|
|
|
|
// switch (dir)
|
|
|
// {
|
|
|
-// case L2R_U2D://从左到右,从上到下
|
|
|
+// case L2R_U2D://锟斤拷锟斤拷锟斤拷,锟斤拷锟较碉拷锟斤拷
|
|
|
// regval |= (0 << 7) | (0 << 6) | (0 << 5);
|
|
|
// break;
|
|
|
-// case L2R_D2U://从左到右,从下到上
|
|
|
+// case L2R_D2U://锟斤拷锟斤拷锟斤拷,锟斤拷锟铰碉拷锟斤拷
|
|
|
// regval |= (1 << 7) | (0 << 6) | (0 << 5);
|
|
|
// break;
|
|
|
-// case R2L_U2D://从右到左,从上到下
|
|
|
+// case R2L_U2D://锟斤拷锟揭碉拷锟斤拷,锟斤拷锟较碉拷锟斤拷
|
|
|
// regval |= (0 << 7) | (1 << 6) | (0 << 5);
|
|
|
// break;
|
|
|
-// case R2L_D2U://从右到左,从下到上
|
|
|
+// case R2L_D2U://锟斤拷锟揭碉拷锟斤拷,锟斤拷锟铰碉拷锟斤拷
|
|
|
// regval |= (1 << 7) | (1 << 6) | (0 << 5);
|
|
|
// break;
|
|
|
-// case U2D_L2R://从上到下,从左到右
|
|
|
+// case U2D_L2R://锟斤拷锟较碉拷锟斤拷,锟斤拷锟斤拷锟斤拷
|
|
|
// regval |= (0 << 7) | (0 << 6) | (1 << 5);
|
|
|
// break;
|
|
|
-// case U2D_R2L://从上到下,从右到左
|
|
|
+// case U2D_R2L://锟斤拷锟较碉拷锟斤拷,锟斤拷锟揭碉拷锟斤拷
|
|
|
// regval |= (0 << 7) | (1 << 6) | (1 << 5);
|
|
|
// break;
|
|
|
-// case D2U_L2R://从下到上,从左到右
|
|
|
+// case D2U_L2R://锟斤拷锟铰碉拷锟斤拷,锟斤拷锟斤拷锟斤拷
|
|
|
// regval |= (1 << 7) | (0 << 6) | (1 << 5);
|
|
|
// break;
|
|
|
-// case D2U_R2L://从下到上,从右到左
|
|
|
+// case D2U_R2L://锟斤拷锟铰碉拷锟斤拷,锟斤拷锟揭碉拷锟斤拷
|
|
|
// regval |= (1 << 7) | (1 << 6) | (1 << 5);
|
|
|
// break;
|
|
|
// }
|
|
@@ -774,7 +770,7 @@ rt_uint16_t ili9341_bgr2rgb(rt_uint16_t value)
|
|
|
|
|
|
// if (regval & 0X20)
|
|
|
// {
|
|
|
-// if (lcddev.width < lcddev.height)//交换X,Y
|
|
|
+// if (lcddev.width < lcddev.height)//锟斤拷锟斤拷X,Y
|
|
|
// {
|
|
|
// temp = lcddev.width;
|
|
|
// lcddev.width = lcddev.height;
|
|
@@ -783,7 +779,7 @@ rt_uint16_t ili9341_bgr2rgb(rt_uint16_t value)
|
|
|
// }
|
|
|
// else
|
|
|
// {
|
|
|
-// if (lcddev.width > lcddev.height)//交换X,Y
|
|
|
+// if (lcddev.width > lcddev.height)//锟斤拷锟斤拷X,Y
|
|
|
// {
|
|
|
// temp = lcddev.width;
|
|
|
// lcddev.width = lcddev.height;
|