mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-11-02 04:31:37 +08:00
Hack for font background when we cannot read from the LCD; Candidate fix for ILI9325 LCD
git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@4763 7fd9a85b-ad96-42d3-883c-3090e2eb8679
This commit is contained in:
@@ -144,3 +144,11 @@
|
|||||||
example.
|
example.
|
||||||
* NXWidgets::CNxTkWindow: Back out height adjustment in the getSize()
|
* NXWidgets::CNxTkWindow: Back out height adjustment in the getSize()
|
||||||
method. The code was correct as it was before.
|
method. The code was correct as it was before.
|
||||||
|
* NXWidgets::CButtonArray and NXWidgets::CGraphicsPort: There is
|
||||||
|
a kludge in there to handle the case where we cannot read the
|
||||||
|
background data because the LCD does not support read operations.
|
||||||
|
In that case, we just use the default background color. However,
|
||||||
|
that doesn't work either for the case where the background color
|
||||||
|
changes when the widget is selected. Thenthe background color
|
||||||
|
in the font is wrong. Fixed in CButtonArrary, but the problem
|
||||||
|
probably exists in other places as well.
|
||||||
|
|||||||
@@ -127,3 +127,18 @@ o Platform specific issues
|
|||||||
The fixed version is available in SVN but won't be in a released
|
The fixed version is available in SVN but won't be in a released
|
||||||
version until NuttX-6.198 is released.
|
version until NuttX-6.198 is released.
|
||||||
Priorioty: Low, but really annoying.
|
Priorioty: Low, but really annoying.
|
||||||
|
|
||||||
|
Title: BUGS WHEN CANNOT READ FROM LCD
|
||||||
|
Description: There is a kludge in there to handle the case where we cannot
|
||||||
|
read the background data because the LCD does not support read
|
||||||
|
operations. You cannot read from the STM3240G-EVAL LCD right
|
||||||
|
now (it might be possible, but I have not figured out how yet).
|
||||||
|
|
||||||
|
In that case, we just use the default background color. However,
|
||||||
|
that doesn't work either for the case where the background color
|
||||||
|
changes when the widget is selected. Then the background color
|
||||||
|
in the font is wrong. There is a hack in in CButtonArrary that
|
||||||
|
fixed this problem, but the problem certainly exists in other
|
||||||
|
places as well and begs for a better solution.
|
||||||
|
Status: Open
|
||||||
|
Priority: Medium-Low
|
||||||
|
|||||||
@@ -151,6 +151,36 @@ namespace NXWidgets
|
|||||||
|
|
||||||
const nxgl_coord_t getY(void) const;
|
const nxgl_coord_t getY(void) const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the background color that will be used to fill in the spaces
|
||||||
|
* when rendering fonts. This background color is ONLY used if the
|
||||||
|
* LCD device does not support reading GRAM contents.
|
||||||
|
*
|
||||||
|
* @return. The current background color being used.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef CONFIG_NX_WRITEONLY
|
||||||
|
nxgl_mxpixel_t getBackColor(void) const
|
||||||
|
{
|
||||||
|
return m_backColor;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the background color that will be used to fill in the spaces
|
||||||
|
* when rendering fonts. This background color is ONLY used if the
|
||||||
|
* LCD device does not support reading GRAM contents.
|
||||||
|
*
|
||||||
|
* @return. The current background color being used.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef CONFIG_NX_WRITEONLY
|
||||||
|
void setBackColor(nxgl_mxpixel_t backColor)
|
||||||
|
{
|
||||||
|
m_backColor = backColor;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Draw a pixel into the window.
|
* Draw a pixel into the window.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -519,9 +519,25 @@ void CButtonArray::drawButton(CGraphicsPort *port, int column, int row, bool use
|
|||||||
pos.x = x + alignX;
|
pos.x = x + alignX;
|
||||||
pos.y = y + alignY;
|
pos.y = y + alignY;
|
||||||
|
|
||||||
// And draw the button text
|
// Set the CGraphicsControl background to match the selected background color.
|
||||||
|
// This is only necessary if we cannot read from the LCD. If we cannot read
|
||||||
|
// from then the font background is set to this background color.
|
||||||
|
// REVISIT: This begs for a more generalized solution.
|
||||||
|
|
||||||
|
#ifdef CONFIG_NX_WRITEONLY
|
||||||
|
nxgl_mxpixel_t saveColor = port->getBackColor();
|
||||||
|
port->setBackColor(backColor);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// And draw the button text.
|
||||||
|
|
||||||
port->drawText(&pos, &rect, getFont(), *text, 0, text->getLength(), textColor);
|
port->drawText(&pos, &rect, getFont(), *text, 0, text->getLength(), textColor);
|
||||||
|
|
||||||
|
// Restore the default background color
|
||||||
|
|
||||||
|
#ifdef CONFIG_NX_WRITEONLY
|
||||||
|
port->setBackColor(saveColor);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -64,6 +64,8 @@
|
|||||||
#include "stm32_internal.h"
|
#include "stm32_internal.h"
|
||||||
#include "stm3240g-internal.h"
|
#include "stm3240g-internal.h"
|
||||||
|
|
||||||
|
#if !defined(CONFIG_STM32_ILI9320_DISABLE) || !defined(CONFIG_STM32_ILI9325_DISABLE)
|
||||||
|
|
||||||
/**************************************************************************************
|
/**************************************************************************************
|
||||||
* Pre-processor Definitions
|
* Pre-processor Definitions
|
||||||
**************************************************************************************/
|
**************************************************************************************/
|
||||||
@@ -705,22 +707,16 @@ static int stm3240g_getrun(fb_coord_t row, fb_coord_t col, FAR uint8_t *buffer,
|
|||||||
lcdvdbg("row: %d col: %d npixels: %d\n", row, col, npixels);
|
lcdvdbg("row: %d col: %d npixels: %d\n", row, col, npixels);
|
||||||
DEBUGASSERT(buffer && ((uintptr_t)buffer & 1) == 0);
|
DEBUGASSERT(buffer && ((uintptr_t)buffer & 1) == 0);
|
||||||
|
|
||||||
/* Configure according to the LCD type */
|
/* Configure according to the LCD type. Kind of silly with only one LCD type. */
|
||||||
|
|
||||||
switch (g_lcddev.type)
|
switch (g_lcddev.type)
|
||||||
{
|
{
|
||||||
#if !defined(CONFIG_STM32_ILI9320_DISABLE)
|
case LCD_TYPE_ILI9320:
|
||||||
case LCD_TYPE_ILI9320:
|
case LCD_TYPE_ILI9325:
|
||||||
readsetup = stm3240g_readnosetup;
|
readsetup = stm3240g_readnosetup;
|
||||||
readgram = stm3240g_readnoshift;
|
readgram = stm3240g_readnoshift;
|
||||||
break;
|
break;
|
||||||
#endif
|
|
||||||
#if !defined(CONFIG_STM32_ILI9325_DISABLE)
|
|
||||||
case LCD_TYPE_ILI9325:
|
|
||||||
readsetup = stm3240g_readnosetup;
|
|
||||||
readgram = stm3240g_readnoshift;
|
|
||||||
break;
|
|
||||||
#endif
|
|
||||||
default: /* Shouldn't happen */
|
default: /* Shouldn't happen */
|
||||||
return -ENOSYS;
|
return -ENOSYS;
|
||||||
}
|
}
|
||||||
@@ -973,21 +969,42 @@ static inline void stm3240g_lcdinitialize(void)
|
|||||||
id = stm3240g_readreg(LCD_REG_0);
|
id = stm3240g_readreg(LCD_REG_0);
|
||||||
lcddbg("LCD ID: %04x\n", id);
|
lcddbg("LCD ID: %04x\n", id);
|
||||||
|
|
||||||
/* Check if the ID is for the STM32_ILI9320 (or ILI9321) & STM32_ILI9325 */
|
/* Check if the ID is for the STM32_ILI9320 (or ILI9321) or STM32_ILI9325 */
|
||||||
|
|
||||||
|
#if !defined(CONFIG_STM32_ILI9320_DISABLE) && !defined(CONFIG_STM32_ILI9325_DISABLE)
|
||||||
|
if (id == ILI9320_ID || id == ILI9321_ID || id == ILI9325_ID)
|
||||||
|
#elif !defined(CONFIG_STM32_ILI9320_DISABLE) && defined(CONFIG_STM32_ILI9325_DISABLE)
|
||||||
|
if (id == ILI9320_ID || id == ILI9321_ID)
|
||||||
|
#else /* if defined(CONFIG_STM32_ILI9320_DISABLE) && !defined(CONFIG_STM32_ILI9325_DISABLE)) */
|
||||||
|
if (id == ILI9325_ID)
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
/* Save the LCD type (not actually used at for anything important) */
|
||||||
|
|
||||||
#if !defined(CONFIG_STM32_ILI9320_DISABLE)
|
#if !defined(CONFIG_STM32_ILI9320_DISABLE)
|
||||||
if ((id == ILI9320_ID) || (id == ILI9321_ID))
|
# if !defined(CONFIG_STM32_ILI9325_DISABLE)
|
||||||
{
|
if (id == ILI9325_ID)
|
||||||
g_lcddev.type = LCD_TYPE_ILI9320;
|
{
|
||||||
|
g_lcddev.type = LCD_TYPE_ILI9325;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
# endif
|
||||||
|
{
|
||||||
|
g_lcddev.type = LCD_TYPE_ILI9320;
|
||||||
|
stm3240g_writereg(LCD_REG_229, 0x8000); /* Set the internal vcore voltage */
|
||||||
|
}
|
||||||
|
#else /* if !defined(CONFIG_STM32_ILI9325_DISABLE) */
|
||||||
|
g_lcddev.type = LCD_TYPE_ILI9325;
|
||||||
|
#endif
|
||||||
lcddbg("LCD type: %d\n", g_lcddev.type);
|
lcddbg("LCD type: %d\n", g_lcddev.type);
|
||||||
|
|
||||||
/* Start Initial Sequence */
|
/* Start Initial Sequence */
|
||||||
|
|
||||||
stm3240g_writereg(LCD_REG_229, 0x8000); /* Set the internal vcore voltage */
|
|
||||||
stm3240g_writereg(LCD_REG_0, 0x0001); /* Start internal OSC. */
|
stm3240g_writereg(LCD_REG_0, 0x0001); /* Start internal OSC. */
|
||||||
stm3240g_writereg(LCD_REG_1, 0x0100); /* Set SS and SM bit */
|
stm3240g_writereg(LCD_REG_1, 0x0100); /* Set SS and SM bit */
|
||||||
stm3240g_writereg(LCD_REG_2, 0x0700); /* Set 1 line inversion */
|
stm3240g_writereg(LCD_REG_2, 0x0700); /* Set 1 line inversion */
|
||||||
stm3240g_writereg(LCD_REG_3, 0x1030); /* Set GRAM write direction and BGR=1. */
|
stm3240g_writereg(LCD_REG_3, 0x1030); /* Set GRAM write direction and BGR=1. */
|
||||||
|
//stm3240g_writereg(LCD_REG_3, 0x1018); /* Set GRAM write direction and BGR=1. */
|
||||||
stm3240g_writereg(LCD_REG_4, 0x0000); /* Resize register */
|
stm3240g_writereg(LCD_REG_4, 0x0000); /* Resize register */
|
||||||
stm3240g_writereg(LCD_REG_8, 0x0202); /* Set the back porch and front porch */
|
stm3240g_writereg(LCD_REG_8, 0x0202); /* Set the back porch and front porch */
|
||||||
stm3240g_writereg(LCD_REG_9, 0x0000); /* Set non-display area refresh cycle ISC[3:0] */
|
stm3240g_writereg(LCD_REG_9, 0x0000); /* Set non-display area refresh cycle ISC[3:0] */
|
||||||
@@ -1018,19 +1035,45 @@ static inline void stm3240g_lcdinitialize(void)
|
|||||||
stm3240g_writereg(LCD_REG_32, 0x0000); /* GRAM horizontal Address */
|
stm3240g_writereg(LCD_REG_32, 0x0000); /* GRAM horizontal Address */
|
||||||
stm3240g_writereg(LCD_REG_33, 0x0000); /* GRAM Vertical Address */
|
stm3240g_writereg(LCD_REG_33, 0x0000); /* GRAM Vertical Address */
|
||||||
|
|
||||||
/* Adjust the Gamma Curve */
|
/* Adjust the Gamma Curve (ILI9320/1) */
|
||||||
|
|
||||||
|
#if !defined(CONFIG_STM32_ILI9320_DISABLE)
|
||||||
|
# if !defined(CONFIG_STM32_ILI9325_DISABLE)
|
||||||
|
if (g_lcddev.type == LCD_TYPE_ILI9320)
|
||||||
|
# endif
|
||||||
|
{
|
||||||
|
stm3240g_writereg(LCD_REG_48, 0x0006);
|
||||||
|
stm3240g_writereg(LCD_REG_49, 0x0101);
|
||||||
|
stm3240g_writereg(LCD_REG_50, 0x0003);
|
||||||
|
stm3240g_writereg(LCD_REG_53, 0x0106);
|
||||||
|
stm3240g_writereg(LCD_REG_54, 0x0b02);
|
||||||
|
stm3240g_writereg(LCD_REG_55, 0x0302);
|
||||||
|
stm3240g_writereg(LCD_REG_56, 0x0707);
|
||||||
|
stm3240g_writereg(LCD_REG_57, 0x0007);
|
||||||
|
stm3240g_writereg(LCD_REG_60, 0x0600);
|
||||||
|
stm3240g_writereg(LCD_REG_61, 0x020b);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
/* Adjust the Gamma Curve (ILI9325) */
|
||||||
|
|
||||||
|
#if !defined(CONFIG_STM32_ILI9325_DISABLE)
|
||||||
|
# if !defined(CONFIG_STM32_ILI9320_DISABLE)
|
||||||
|
else
|
||||||
|
# endif
|
||||||
|
{
|
||||||
|
stm3240g_writereg(LCD_REG_48, 0x0007);
|
||||||
|
stm3240g_writereg(LCD_REG_49, 0x0302);
|
||||||
|
stm3240g_writereg(LCD_REG_50, 0x0105);
|
||||||
|
stm3240g_writereg(LCD_REG_53, 0x0206);
|
||||||
|
stm3240g_writereg(LCD_REG_54, 0x0808);
|
||||||
|
stm3240g_writereg(LCD_REG_55, 0x0206);
|
||||||
|
stm3240g_writereg(LCD_REG_56, 0x0504);
|
||||||
|
stm3240g_writereg(LCD_REG_57, 0x0007);
|
||||||
|
stm3240g_writereg(LCD_REG_60, 0x0105);
|
||||||
|
stm3240g_writereg(LCD_REG_61, 0x0808);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
stm3240g_writereg(LCD_REG_48, 0x0006);
|
|
||||||
stm3240g_writereg(LCD_REG_49, 0x0101);
|
|
||||||
stm3240g_writereg(LCD_REG_50, 0x0003);
|
|
||||||
stm3240g_writereg(LCD_REG_53, 0x0106);
|
|
||||||
stm3240g_writereg(LCD_REG_54, 0x0b02);
|
|
||||||
stm3240g_writereg(LCD_REG_55, 0x0302);
|
|
||||||
stm3240g_writereg(LCD_REG_56, 0x0707);
|
|
||||||
stm3240g_writereg(LCD_REG_57, 0x0007);
|
|
||||||
stm3240g_writereg(LCD_REG_60, 0x0600);
|
|
||||||
stm3240g_writereg(LCD_REG_61, 0x020b);
|
|
||||||
|
|
||||||
/* Set GRAM area */
|
/* Set GRAM area */
|
||||||
|
|
||||||
stm3240g_writereg(LCD_REG_80, 0x0000); /* Horizontal GRAM Start Address */
|
stm3240g_writereg(LCD_REG_80, 0x0000); /* Horizontal GRAM Start Address */
|
||||||
@@ -1038,6 +1081,7 @@ static inline void stm3240g_lcdinitialize(void)
|
|||||||
stm3240g_writereg(LCD_REG_82, 0x0000); /* Vertical GRAM Start Address */
|
stm3240g_writereg(LCD_REG_82, 0x0000); /* Vertical GRAM Start Address */
|
||||||
stm3240g_writereg(LCD_REG_83, 0x013f); /* Vertical GRAM End Address */
|
stm3240g_writereg(LCD_REG_83, 0x013f); /* Vertical GRAM End Address */
|
||||||
stm3240g_writereg(LCD_REG_96, 0x2700); /* Gate Scan Line */
|
stm3240g_writereg(LCD_REG_96, 0x2700); /* Gate Scan Line */
|
||||||
|
//stm3240g_writereg(LCD_REG_96, 0xa700); /* Gate Scan Line(GS=1, scan direction is G320~G1) */
|
||||||
stm3240g_writereg(LCD_REG_97, 0x0001); /* NDL,VLE, REV */
|
stm3240g_writereg(LCD_REG_97, 0x0001); /* NDL,VLE, REV */
|
||||||
stm3240g_writereg(LCD_REG_106, 0x0000); /* Set scrolling line */
|
stm3240g_writereg(LCD_REG_106, 0x0000); /* Set scrolling line */
|
||||||
|
|
||||||
@@ -1069,97 +1113,6 @@ static inline void stm3240g_lcdinitialize(void)
|
|||||||
stm3240g_writereg(LCD_REG_7, 0); /* Display off */
|
stm3240g_writereg(LCD_REG_7, 0); /* Display off */
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
#endif
|
|
||||||
#if !defined(CONFIG_STM32_ILI9325_DISABLE)
|
|
||||||
if (id == ILI9325_ID)
|
|
||||||
{
|
|
||||||
g_lcddev.type = LCD_TYPE_ILI9325;
|
|
||||||
lcddbg("LCD type: %d\n", g_lcddev.type);
|
|
||||||
|
|
||||||
/* Start Initial Sequence */
|
|
||||||
|
|
||||||
stm3240g_writereg(LCD_REG_0, 0x0001); /* Start internal OSC. */
|
|
||||||
stm3240g_writereg(LCD_REG_1, 0x0100); /* Set SS and SM bit */
|
|
||||||
stm3240g_writereg(LCD_REG_2, 0x0700); /* Set 1 line inversion */
|
|
||||||
stm3240g_writereg(LCD_REG_3, 0x1018); /* Set GRAM write direction and BGR=1. */
|
|
||||||
stm3240g_writereg(LCD_REG_4, 0x0000); /* Resize register */
|
|
||||||
stm3240g_writereg(LCD_REG_8, 0x0202); /* Set the back porch and front porch */
|
|
||||||
stm3240g_writereg(LCD_REG_9, 0x0000); /* Set non-display area refresh cycle ISC[3:0] */
|
|
||||||
stm3240g_writereg(LCD_REG_10, 0x0000); /* FMARK function */
|
|
||||||
stm3240g_writereg(LCD_REG_12, 0x0000); /* RGB interface setting */
|
|
||||||
stm3240g_writereg(LCD_REG_13, 0x0000); /* Frame marker Position */
|
|
||||||
stm3240g_writereg(LCD_REG_15, 0x0000); /* RGB interface polarity */
|
|
||||||
|
|
||||||
/* Power On sequence */
|
|
||||||
|
|
||||||
stm3240g_writereg(LCD_REG_16, 0x0000); /* SAP, BT[3:0], AP, DSTB, SLP, STB */
|
|
||||||
stm3240g_writereg(LCD_REG_17, 0x0000); /* DC1[2:0], DC0[2:0], VC[2:0] */
|
|
||||||
stm3240g_writereg(LCD_REG_18, 0x0000); /* VREG1OUT voltage */
|
|
||||||
stm3240g_writereg(LCD_REG_19, 0x0000); /* VDV[4:0] for VCOM amplitude */
|
|
||||||
up_mdelay(200); /* Dis-charge capacitor power voltage (200ms) */
|
|
||||||
stm3240g_writereg(LCD_REG_16, 0x17B0); /* SAP, BT[3:0], AP, DSTB, SLP, STB */
|
|
||||||
stm3240g_writereg(LCD_REG_17, 0x0137); /* DC1[2:0], DC0[2:0], VC[2:0] */
|
|
||||||
up_mdelay(50); /* Delay 50 ms */
|
|
||||||
stm3240g_writereg(LCD_REG_18, 0x0139); /* VREG1OUT voltage */
|
|
||||||
up_mdelay(50); /* Delay 50 ms */
|
|
||||||
stm3240g_writereg(LCD_REG_19, 0x1d00); /* VDV[4:0] for VCOM amplitude */
|
|
||||||
stm3240g_writereg(LCD_REG_41, 0x0013); /* VCM[4:0] for VCOMH */
|
|
||||||
up_mdelay(50); /* Delay 50 ms */
|
|
||||||
stm3240g_writereg(LCD_REG_32, 0x0000); /* GRAM horizontal Address */
|
|
||||||
stm3240g_writereg(LCD_REG_33, 0x0000); /* GRAM Vertical Address */
|
|
||||||
|
|
||||||
/* Adjust the Gamma Curve (ILI9325) */
|
|
||||||
|
|
||||||
stm3240g_writereg(LCD_REG_48, 0x0007);
|
|
||||||
stm3240g_writereg(LCD_REG_49, 0x0302);
|
|
||||||
stm3240g_writereg(LCD_REG_50, 0x0105);
|
|
||||||
stm3240g_writereg(LCD_REG_53, 0x0206);
|
|
||||||
stm3240g_writereg(LCD_REG_54, 0x0808);
|
|
||||||
stm3240g_writereg(LCD_REG_55, 0x0206);
|
|
||||||
stm3240g_writereg(LCD_REG_56, 0x0504);
|
|
||||||
stm3240g_writereg(LCD_REG_57, 0x0007);
|
|
||||||
stm3240g_writereg(LCD_REG_60, 0x0105);
|
|
||||||
stm3240g_writereg(LCD_REG_61, 0x0808);
|
|
||||||
|
|
||||||
/* Set GRAM area */
|
|
||||||
|
|
||||||
stm3240g_writereg(LCD_REG_80, 0x0000); /* Horizontal GRAM Start Address */
|
|
||||||
stm3240g_writereg(LCD_REG_81, 0x00EF); /* Horizontal GRAM End Address */
|
|
||||||
stm3240g_writereg(LCD_REG_82, 0x0000); /* Vertical GRAM Start Address */
|
|
||||||
stm3240g_writereg(LCD_REG_83, 0x013F); /* Vertical GRAM End Address */
|
|
||||||
|
|
||||||
stm3240g_writereg(LCD_REG_96, 0xA700); /* Gate Scan Line(GS=1, scan direction is G320~G1) */
|
|
||||||
stm3240g_writereg(LCD_REG_97, 0x0001); /* NDL,VLE, REV */
|
|
||||||
stm3240g_writereg(LCD_REG_106, 0x0000); /* set scrolling line */
|
|
||||||
|
|
||||||
/* Partial Display Control */
|
|
||||||
|
|
||||||
stm3240g_writereg(LCD_REG_128, 0x0000);
|
|
||||||
stm3240g_writereg(LCD_REG_129, 0x0000);
|
|
||||||
stm3240g_writereg(LCD_REG_130, 0x0000);
|
|
||||||
stm3240g_writereg(LCD_REG_131, 0x0000);
|
|
||||||
stm3240g_writereg(LCD_REG_132, 0x0000);
|
|
||||||
stm3240g_writereg(LCD_REG_133, 0x0000);
|
|
||||||
|
|
||||||
/* Panel Control */
|
|
||||||
|
|
||||||
stm3240g_writereg(LCD_REG_144, 0x0010);
|
|
||||||
stm3240g_writereg(LCD_REG_146, 0x0000);
|
|
||||||
stm3240g_writereg(LCD_REG_147, 0x0003);
|
|
||||||
stm3240g_writereg(LCD_REG_149, 0x0110);
|
|
||||||
stm3240g_writereg(LCD_REG_151, 0x0000);
|
|
||||||
stm3240g_writereg(LCD_REG_152, 0x0000);
|
|
||||||
|
|
||||||
/* set GRAM write direction and BGR = 1 */
|
|
||||||
/* I/D=00 (Horizontal : increment, Vertical : decrement) */
|
|
||||||
/* AM=1 (address is updated in vertical writing direction) */
|
|
||||||
|
|
||||||
stm3240g_writereg(LCD_REG_3, 0x1018);
|
|
||||||
|
|
||||||
stm3240g_writereg(LCD_REG_7, 0x0); /* display off */
|
|
||||||
}
|
|
||||||
else
|
|
||||||
#endif
|
|
||||||
{
|
{
|
||||||
lcddbg("Unsupported LCD type\n");
|
lcddbg("Unsupported LCD type\n");
|
||||||
}
|
}
|
||||||
@@ -1254,3 +1207,4 @@ void stm3240g_lcdclear(uint16_t color)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif /* !CONFIG_STM32_ILI9320_DISABLE || !CONFIG_STM32_ILI9325_DISABLE */
|
||||||
|
|||||||
Reference in New Issue
Block a user