Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
AdRainty
rt-thread
提交
e548b77d
R
rt-thread
项目概览
AdRainty
/
rt-thread
与 Fork 源项目一致
Fork自
RT-Thread / rt-thread
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rt-thread
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
e548b77d
编写于
8月 11, 2020
作者:
N
nongxiaoming
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[bsp] stm32:fix the lcd driver for stm32f429 discovery board.
上级
ea01edb6
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
476 addition
and
12 deletion
+476
-12
bsp/stm32/stm32f429-st-disco/board/SConscript
bsp/stm32/stm32f429-st-disco/board/SConscript
+3
-0
bsp/stm32/stm32f429-st-disco/board/board.c
bsp/stm32/stm32f429-st-disco/board/board.c
+10
-7
bsp/stm32/stm32f429-st-disco/board/ports/ili9341.c
bsp/stm32/stm32f429-st-disco/board/ports/ili9341.c
+313
-0
bsp/stm32/stm32f429-st-disco/board/ports/ili9341.h
bsp/stm32/stm32f429-st-disco/board/ports/ili9341.h
+145
-0
bsp/stm32/stm32f429-st-disco/board/ports/lcd_port.h
bsp/stm32/stm32f429-st-disco/board/ports/lcd_port.h
+5
-5
未找到文件。
bsp/stm32/stm32f429-st-disco/board/SConscript
浏览文件 @
e548b77d
...
...
@@ -27,6 +27,9 @@ if GetDepend(['BSP_USING_SDCARD']):
if
GetDepend
([
'BSP_USING_QSPI'
]):
src
+=
[
'ports/drv_qspi_flash.c'
]
if
GetDepend
([
'BSP_USING_LCD'
]):
src
+=
[
'ports/ili9341.c'
]
path
=
[
cwd
]
path
+=
[
cwd
+
'/CubeMX_Config/Inc'
]
path
+=
[
cwd
+
'/ports'
]
...
...
bsp/stm32/stm32f429-st-disco/board/board.c
浏览文件 @
e548b77d
...
...
@@ -48,12 +48,15 @@ void SystemClock_Config(void)
{
Error_Handler
();
}
/*##-2- LTDC Clock Configuration ###########################################*/
/* LCD clock configuration */
/* PLLSAI_VCO Input = HSE_VALUE/PLL_M = 1 MHz */
/* PLLSAI_VCO Output = PLLSAI_VCO Input * PLLSAIN = 192 MHz */
/* PLLLCDCLK = PLLSAI_VCO Output/PLLSAIR = 192/4 = 48 MHz */
/* LTDC clock frequency = PLLLCDCLK / RCC_PLLSAIDIVR_8 = 48/8 = 6 MHz */
PeriphClkInitStruct
.
PeriphClockSelection
=
RCC_PERIPHCLK_LTDC
;
PeriphClkInitStruct
.
PLLSAI
.
PLLSAIN
=
50
;
PeriphClkInitStruct
.
PLLSAI
.
PLLSAIR
=
2
;
PeriphClkInitStruct
.
PLLSAIDivR
=
RCC_PLLSAIDIVR_2
;
if
(
HAL_RCCEx_PeriphCLKConfig
(
&
PeriphClkInitStruct
)
!=
HAL_OK
)
{
Error_Handler
();
}
PeriphClkInitStruct
.
PLLSAI
.
PLLSAIN
=
192
;
PeriphClkInitStruct
.
PLLSAI
.
PLLSAIR
=
4
;
PeriphClkInitStruct
.
PLLSAIDivR
=
RCC_PLLSAIDIVR_8
;
HAL_RCCEx_PeriphCLKConfig
(
&
PeriphClkInitStruct
);
}
bsp/stm32/stm32f429-st-disco/board/ports/ili9341.c
0 → 100644
浏览文件 @
e548b77d
/*
* File : ili9341.c
* This file is part of RT-Thread RTOS
* COPYRIGHT (C) 2020, RT-Thread Development Team
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Change Logs:
* Date Author Notes
* 2020-08-11 RT-Thread the first version
*/
#include "rtthread.h"
#include "stm32f4xx_hal.h"
#include "ili9341.h"
/**
* @brief LCD Control pin
*/
#define LCD_NCS_PIN GPIO_PIN_2
#define LCD_NCS_GPIO_PORT GPIOC
#define LCD_NCS_GPIO_CLK_ENABLE() __HAL_RCC_GPIOC_CLK_ENABLE()
#define LCD_NCS_GPIO_CLK_DISABLE() __HAL_RCC_GPIOC_CLK_DISABLE()
/**
* @brief LCD Command/data pin
*/
#define LCD_WRX_PIN GPIO_PIN_13
#define LCD_WRX_GPIO_PORT GPIOD
#define LCD_WRX_GPIO_CLK_ENABLE() __HAL_RCC_GPIOD_CLK_ENABLE()
#define LCD_WRX_GPIO_CLK_DISABLE() __HAL_RCC_GPIOD_CLK_DISABLE()
#define LCD_RDX_PIN GPIO_PIN_12
#define LCD_RDX_GPIO_PORT GPIOD
#define LCD_RDX_GPIO_CLK_ENABLE() __HAL_RCC_GPIOD_CLK_ENABLE()
#define LCD_RDX_GPIO_CLK_DISABLE() __HAL_RCC_GPIOD_CLK_DISABLE()
/* Maximum Timeout values for flags waiting loops */
#define SPIx_TIMEOUT_MAX ((uint32_t)0x1000)
/* Chip Select macro definition */
#define LCD_CS_LOW() HAL_GPIO_WritePin(LCD_NCS_GPIO_PORT, LCD_NCS_PIN, GPIO_PIN_RESET)
#define LCD_CS_HIGH() HAL_GPIO_WritePin(LCD_NCS_GPIO_PORT, LCD_NCS_PIN, GPIO_PIN_SET)
/* Set WRX High to send data */
#define LCD_WRX_LOW() HAL_GPIO_WritePin(LCD_WRX_GPIO_PORT, LCD_WRX_PIN, GPIO_PIN_RESET)
#define LCD_WRX_HIGH() HAL_GPIO_WritePin(LCD_WRX_GPIO_PORT, LCD_WRX_PIN, GPIO_PIN_SET)
/* Set WRX High to send data */
#define LCD_RDX_LOW() HAL_GPIO_WritePin(LCD_RDX_GPIO_PORT, LCD_RDX_PIN, GPIO_PIN_RESET)
#define LCD_RDX_HIGH() HAL_GPIO_WritePin(LCD_RDX_GPIO_PORT, LCD_RDX_PIN, GPIO_PIN_SET)
static
uint8_t
Is_LCD_IO_Initialized
=
0
;
static
SPI_HandleTypeDef
SpiHandle
;
/**
* @brief SPIx Bus initialization
*/
static
void
SPIx_Init
(
void
)
{
if
(
HAL_SPI_GetState
(
&
SpiHandle
)
==
HAL_SPI_STATE_RESET
)
{
/* SPI configuration -----------------------------------------------------*/
SpiHandle
.
Instance
=
SPI5
;
/* SPI baudrate is set to 5.6 MHz (PCLK2/SPI_BaudRatePrescaler = 90/16 = 5.625 MHz)
*/
SpiHandle
.
Init
.
BaudRatePrescaler
=
SPI_BAUDRATEPRESCALER_16
;
/* On STM32F429I-Discovery, LCD ID cannot be read then keep a common configuration */
/* for LCD and GYRO (SPI_DIRECTION_2LINES) */
/* Note: To read a register a LCD, SPI_DIRECTION_1LINE should be set */
SpiHandle
.
Init
.
Direction
=
SPI_DIRECTION_2LINES
;
SpiHandle
.
Init
.
CLKPhase
=
SPI_PHASE_1EDGE
;
SpiHandle
.
Init
.
CLKPolarity
=
SPI_POLARITY_LOW
;
SpiHandle
.
Init
.
CRCCalculation
=
SPI_CRCCALCULATION_DISABLED
;
SpiHandle
.
Init
.
CRCPolynomial
=
7
;
SpiHandle
.
Init
.
DataSize
=
SPI_DATASIZE_8BIT
;
SpiHandle
.
Init
.
FirstBit
=
SPI_FIRSTBIT_MSB
;
SpiHandle
.
Init
.
NSS
=
SPI_NSS_SOFT
;
SpiHandle
.
Init
.
TIMode
=
SPI_TIMODE_DISABLED
;
SpiHandle
.
Init
.
Mode
=
SPI_MODE_MASTER
;
HAL_SPI_Init
(
&
SpiHandle
);
}
}
/**
* @brief Configures the LCD_SPI interface.
*/
static
void
LCD_GPIO_Init
(
void
)
{
GPIO_InitTypeDef
GPIO_InitStructure
;
if
(
Is_LCD_IO_Initialized
==
0
)
{
Is_LCD_IO_Initialized
=
1
;
/* Configure NCS in Output Push-Pull mode */
LCD_WRX_GPIO_CLK_ENABLE
();
GPIO_InitStructure
.
Pin
=
LCD_WRX_PIN
;
GPIO_InitStructure
.
Mode
=
GPIO_MODE_OUTPUT_PP
;
GPIO_InitStructure
.
Pull
=
GPIO_NOPULL
;
GPIO_InitStructure
.
Speed
=
GPIO_SPEED_FAST
;
HAL_GPIO_Init
(
LCD_WRX_GPIO_PORT
,
&
GPIO_InitStructure
);
LCD_RDX_GPIO_CLK_ENABLE
();
GPIO_InitStructure
.
Pin
=
LCD_RDX_PIN
;
GPIO_InitStructure
.
Mode
=
GPIO_MODE_OUTPUT_PP
;
GPIO_InitStructure
.
Pull
=
GPIO_NOPULL
;
GPIO_InitStructure
.
Speed
=
GPIO_SPEED_FAST
;
HAL_GPIO_Init
(
LCD_RDX_GPIO_PORT
,
&
GPIO_InitStructure
);
/* Configure the LCD Control pins ----------------------------------------*/
LCD_NCS_GPIO_CLK_ENABLE
();
/* Configure NCS in Output Push-Pull mode */
GPIO_InitStructure
.
Pin
=
LCD_NCS_PIN
;
GPIO_InitStructure
.
Mode
=
GPIO_MODE_OUTPUT_PP
;
GPIO_InitStructure
.
Pull
=
GPIO_NOPULL
;
GPIO_InitStructure
.
Speed
=
GPIO_SPEED_FAST
;
HAL_GPIO_Init
(
LCD_NCS_GPIO_PORT
,
&
GPIO_InitStructure
);
/* Set or Reset the control line */
LCD_CS_LOW
();
LCD_CS_HIGH
();
SPIx_Init
();
}
}
/**
* @brief Writes data to the selected LCD register.
* @param data: data to lcd.
* @retval None
*/
static
void
ili9341_write_data
(
uint16_t
data
)
{
/* Set WRX to send data */
LCD_WRX_HIGH
();
/* Reset LCD control line(/CS) and Send data */
LCD_CS_LOW
();
HAL_SPI_Transmit
(
&
SpiHandle
,
(
uint8_t
*
)
&
data
,
1
,
SPIx_TIMEOUT_MAX
);
/* Deselect: Chip Select high */
LCD_CS_HIGH
();
}
/**
* @brief Writes to the selected LCD register.
* @param reg: address of the selected register.
* @retval None
*/
static
void
ili9341_write_register
(
uint8_t
reg
)
{
/* Reset WRX to send command */
LCD_WRX_LOW
();
/* Reset LCD control line(/CS) and Send command */
LCD_CS_LOW
();
HAL_SPI_Transmit
(
&
SpiHandle
,
(
uint8_t
*
)
&
reg
,
1
,
SPIx_TIMEOUT_MAX
);
/* Deselect: Chip Select high */
LCD_CS_HIGH
();
}
/**
* @brief Power on the LCD.
* @param None
* @retval int
*/
int
ili9341_hw_init
(
void
)
{
/* Initialize ILI9341 low level bus layer ----------------------------------*/
LCD_GPIO_Init
();
/* Configure LCD */
ili9341_write_register
(
0xCA
);
ili9341_write_data
(
0xC3
);
ili9341_write_data
(
0x08
);
ili9341_write_data
(
0x50
);
ili9341_write_register
(
LCD_POWERB
);
ili9341_write_data
(
0x00
);
ili9341_write_data
(
0xC1
);
ili9341_write_data
(
0x30
);
ili9341_write_register
(
LCD_POWER_SEQ
);
ili9341_write_data
(
0x64
);
ili9341_write_data
(
0x03
);
ili9341_write_data
(
0x12
);
ili9341_write_data
(
0x81
);
ili9341_write_register
(
LCD_DTCA
);
ili9341_write_data
(
0x85
);
ili9341_write_data
(
0x00
);
ili9341_write_data
(
0x78
);
ili9341_write_register
(
LCD_POWERA
);
ili9341_write_data
(
0x39
);
ili9341_write_data
(
0x2C
);
ili9341_write_data
(
0x00
);
ili9341_write_data
(
0x34
);
ili9341_write_data
(
0x02
);
ili9341_write_register
(
LCD_PRC
);
ili9341_write_data
(
0x20
);
ili9341_write_register
(
LCD_DTCB
);
ili9341_write_data
(
0x00
);
ili9341_write_data
(
0x00
);
ili9341_write_register
(
LCD_FRMCTR1
);
ili9341_write_data
(
0x00
);
ili9341_write_data
(
0x1B
);
ili9341_write_register
(
LCD_DFC
);
ili9341_write_data
(
0x0A
);
ili9341_write_data
(
0xA2
);
ili9341_write_register
(
LCD_POWER1
);
ili9341_write_data
(
0x10
);
ili9341_write_register
(
LCD_POWER2
);
ili9341_write_data
(
0x10
);
ili9341_write_register
(
LCD_VCOM1
);
ili9341_write_data
(
0x45
);
ili9341_write_data
(
0x15
);
ili9341_write_register
(
LCD_VCOM2
);
ili9341_write_data
(
0x90
);
ili9341_write_register
(
LCD_MAC
);
ili9341_write_data
(
0xC8
);
ili9341_write_register
(
LCD_3GAMMA_EN
);
ili9341_write_data
(
0x00
);
ili9341_write_register
(
LCD_RGB_INTERFACE
);
ili9341_write_data
(
0xC2
);
ili9341_write_register
(
LCD_DFC
);
ili9341_write_data
(
0x0A
);
ili9341_write_data
(
0xA7
);
ili9341_write_data
(
0x27
);
ili9341_write_data
(
0x04
);
/* Colomn address set */
ili9341_write_register
(
LCD_COLUMN_ADDR
);
ili9341_write_data
(
0x00
);
ili9341_write_data
(
0x00
);
ili9341_write_data
(
0x00
);
ili9341_write_data
(
0xEF
);
/* Page address set */
ili9341_write_register
(
LCD_PAGE_ADDR
);
ili9341_write_data
(
0x00
);
ili9341_write_data
(
0x00
);
ili9341_write_data
(
0x01
);
ili9341_write_data
(
0x3F
);
ili9341_write_register
(
LCD_INTERFACE
);
ili9341_write_data
(
0x01
);
ili9341_write_data
(
0x00
);
ili9341_write_data
(
0x06
);
ili9341_write_register
(
LCD_GRAM
);
rt_thread_mdelay
(
20
);
ili9341_write_register
(
LCD_GAMMA
);
ili9341_write_data
(
0x01
);
ili9341_write_register
(
LCD_PGAMMA
);
ili9341_write_data
(
0x0F
);
ili9341_write_data
(
0x29
);
ili9341_write_data
(
0x24
);
ili9341_write_data
(
0x0C
);
ili9341_write_data
(
0x0E
);
ili9341_write_data
(
0x09
);
ili9341_write_data
(
0x4E
);
ili9341_write_data
(
0x78
);
ili9341_write_data
(
0x3C
);
ili9341_write_data
(
0x09
);
ili9341_write_data
(
0x13
);
ili9341_write_data
(
0x05
);
ili9341_write_data
(
0x17
);
ili9341_write_data
(
0x11
);
ili9341_write_data
(
0x00
);
ili9341_write_register
(
LCD_NGAMMA
);
ili9341_write_data
(
0x00
);
ili9341_write_data
(
0x16
);
ili9341_write_data
(
0x1B
);
ili9341_write_data
(
0x04
);
ili9341_write_data
(
0x11
);
ili9341_write_data
(
0x07
);
ili9341_write_data
(
0x31
);
ili9341_write_data
(
0x33
);
ili9341_write_data
(
0x42
);
ili9341_write_data
(
0x05
);
ili9341_write_data
(
0x0C
);
ili9341_write_data
(
0x0A
);
ili9341_write_data
(
0x28
);
ili9341_write_data
(
0x2F
);
ili9341_write_data
(
0x0F
);
ili9341_write_register
(
LCD_SLEEP_OUT
);
rt_thread_mdelay
(
20
);
ili9341_write_register
(
LCD_DISPLAY_ON
);
/* GRAM start writing */
ili9341_write_register
(
LCD_GRAM
);
return
0
;
}
INIT_DEVICE_EXPORT
(
ili9341_hw_init
);
bsp/stm32/stm32f429-st-disco/board/ports/ili9341.h
0 → 100644
浏览文件 @
e548b77d
/*
* File : ili9341.h
* This file is part of RT-Thread RTOS
* COPYRIGHT (C) 2020, RT-Thread Development Team
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Change Logs:
* Date Author Notes
* 2020-08-11 RT-Thread the first version
*/
#ifndef __ILI9341_H
#define __ILI9341_H
#ifdef __cplusplus
extern
"C"
{
#endif
/**
* @brief ILI9341 chip IDs
*/
#define ILI9341_ID 0x9341
/**
* @brief ILI9341 Registers
*/
/* Level 1 Commands */
#define LCD_SWRESET 0x01
/* Software Reset */
#define LCD_READ_DISPLAY_ID 0x04
/* Read display identification information */
#define LCD_RDDST 0x09
/* Read Display Status */
#define LCD_RDDPM 0x0A
/* Read Display Power Mode */
#define LCD_RDDMADCTL 0x0B
/* Read Display MADCTL */
#define LCD_RDDCOLMOD 0x0C
/* Read Display Pixel Format */
#define LCD_RDDIM 0x0D
/* Read Display Image Format */
#define LCD_RDDSM 0x0E
/* Read Display Signal Mode */
#define LCD_RDDSDR 0x0F
/* Read Display Self-Diagnostic Result */
#define LCD_SPLIN 0x10
/* Enter Sleep Mode */
#define LCD_SLEEP_OUT 0x11
/* Sleep out register */
#define LCD_PTLON 0x12
/* Partial Mode ON */
#define LCD_NORMAL_MODE_ON 0x13
/* Normal Display Mode ON */
#define LCD_DINVOFF 0x20
/* Display Inversion OFF */
#define LCD_DINVON 0x21
/* Display Inversion ON */
#define LCD_GAMMA 0x26
/* Gamma register */
#define LCD_DISPLAY_OFF 0x28
/* Display off register */
#define LCD_DISPLAY_ON 0x29
/* Display on register */
#define LCD_COLUMN_ADDR 0x2A
/* Colomn address register */
#define LCD_PAGE_ADDR 0x2B
/* Page address register */
#define LCD_GRAM 0x2C
/* GRAM register */
#define LCD_RGBSET 0x2D
/* Color SET */
#define LCD_RAMRD 0x2E
/* Memory Read */
#define LCD_PLTAR 0x30
/* Partial Area */
#define LCD_VSCRDEF 0x33
/* Vertical Scrolling Definition */
#define LCD_TEOFF 0x34
/* Tearing Effect Line OFF */
#define LCD_TEON 0x35
/* Tearing Effect Line ON */
#define LCD_MAC 0x36
/* Memory Access Control register*/
#define LCD_VSCRSADD 0x37
/* Vertical Scrolling Start Address */
#define LCD_IDMOFF 0x38
/* Idle Mode OFF */
#define LCD_IDMON 0x39
/* Idle Mode ON */
#define LCD_PIXEL_FORMAT 0x3A
/* Pixel Format register */
#define LCD_WRITE_MEM_CONTINUE 0x3C
/* Write Memory Continue */
#define LCD_READ_MEM_CONTINUE 0x3E
/* Read Memory Continue */
#define LCD_SET_TEAR_SCANLINE 0x44
/* Set Tear Scanline */
#define LCD_GET_SCANLINE 0x45
/* Get Scanline */
#define LCD_WDB 0x51
/* Write Brightness Display register */
#define LCD_RDDISBV 0x52
/* Read Display Brightness */
#define LCD_WCD 0x53
/* Write Control Display register*/
#define LCD_RDCTRLD 0x54
/* Read CTRL Display */
#define LCD_WRCABC 0x55
/* Write Content Adaptive Brightness Control */
#define LCD_RDCABC 0x56
/* Read Content Adaptive Brightness Control */
#define LCD_WRITE_CABC 0x5E
/* Write CABC Minimum Brightness */
#define LCD_READ_CABC 0x5F
/* Read CABC Minimum Brightness */
#define LCD_READ_ID1 0xDA
/* Read ID1 */
#define LCD_READ_ID2 0xDB
/* Read ID2 */
#define LCD_READ_ID3 0xDC
/* Read ID3 */
/* Level 2 Commands */
#define LCD_RGB_INTERFACE 0xB0
/* RGB Interface Signal Control */
#define LCD_FRMCTR1 0xB1
/* Frame Rate Control (In Normal Mode) */
#define LCD_FRMCTR2 0xB2
/* Frame Rate Control (In Idle Mode) */
#define LCD_FRMCTR3 0xB3
/* Frame Rate Control (In Partial Mode) */
#define LCD_INVTR 0xB4
/* Display Inversion Control */
#define LCD_BPC 0xB5
/* Blanking Porch Control register */
#define LCD_DFC 0xB6
/* Display Function Control register */
#define LCD_ETMOD 0xB7
/* Entry Mode Set */
#define LCD_BACKLIGHT1 0xB8
/* Backlight Control 1 */
#define LCD_BACKLIGHT2 0xB9
/* Backlight Control 2 */
#define LCD_BACKLIGHT3 0xBA
/* Backlight Control 3 */
#define LCD_BACKLIGHT4 0xBB
/* Backlight Control 4 */
#define LCD_BACKLIGHT5 0xBC
/* Backlight Control 5 */
#define LCD_BACKLIGHT7 0xBE
/* Backlight Control 7 */
#define LCD_BACKLIGHT8 0xBF
/* Backlight Control 8 */
#define LCD_POWER1 0xC0
/* Power Control 1 register */
#define LCD_POWER2 0xC1
/* Power Control 2 register */
#define LCD_VCOM1 0xC5
/* VCOM Control 1 register */
#define LCD_VCOM2 0xC7
/* VCOM Control 2 register */
#define LCD_NVMWR 0xD0
/* NV Memory Write */
#define LCD_NVMPKEY 0xD1
/* NV Memory Protection Key */
#define LCD_RDNVM 0xD2
/* NV Memory Status Read */
#define LCD_READ_ID4 0xD3
/* Read ID4 */
#define LCD_PGAMMA 0xE0
/* Positive Gamma Correction register */
#define LCD_NGAMMA 0xE1
/* Negative Gamma Correction register */
#define LCD_DGAMCTRL1 0xE2
/* Digital Gamma Control 1 */
#define LCD_DGAMCTRL2 0xE3
/* Digital Gamma Control 2 */
#define LCD_INTERFACE 0xF6
/* Interface control register */
/* Extend register commands */
#define LCD_POWERA 0xCB
/* Power control A register */
#define LCD_POWERB 0xCF
/* Power control B register */
#define LCD_DTCA 0xE8
/* Driver timing control A */
#define LCD_DTCB 0xEA
/* Driver timing control B */
#define LCD_POWER_SEQ 0xED
/* Power on sequence register */
#define LCD_3GAMMA_EN 0xF2
/* 3 Gamma enable register */
#define LCD_PRC 0xF7
/* Pump ratio control register */
/* Size of read registers */
#define LCD_READ_ID4_SIZE 3
/* Size of Read ID4 */
/** @defgroup ILI9341_Exported_Functions
* @{
*/
int
ili9341_hw_init
(
void
);
#ifdef __cplusplus
}
#endif
#endif
/* __ILI9341_H */
bsp/stm32/stm32f429-st-disco/board/ports/lcd_port.h
浏览文件 @
e548b77d
...
...
@@ -18,12 +18,12 @@
#define LCD_BUF_SIZE (LCD_WIDTH * LCD_HEIGHT * LCD_BITS_PER_PIXEL / 8)
#define LCD_PIXEL_FORMAT RTGRAPHIC_PIXEL_FORMAT_RGB565
#define LCD_HSYNC_WIDTH
2
#define LCD_HSYNC_WIDTH
10
#define LCD_VSYNC_HEIGHT 2
#define LCD_HBP
46
#define LCD_VBP 2
3
#define LCD_HFP
22
#define LCD_VFP
22
#define LCD_HBP
20
#define LCD_VBP 2
#define LCD_HFP
10
#define LCD_VFP
5
#define LCD_BACKLIGHT_USING_GPIO
#define LCD_BL_GPIO_NUM GET_PIN(D, 7)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录