MCUXpresso_MIMXRT1052xxxxB/components/ili9341/fsl_ili9341.c

143 lines
4.7 KiB
C

/*
* Copyright (c) 2016, Freescale Semiconductor, Inc.
* Copyright 2016-2017,2019, 2022 NXP
* All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#include "fsl_ili9341.h"
void FT9341_Init(ili9341_send_byte_t _writeData, ili9341_send_byte_t _writeCommand)
{
SDK_DelayAtLeastUs(ILI9341_RESET_CANCEL_MS * 1000U, SDK_DEVICE_MAXIMUM_CPU_CLOCK_FREQUENCY);
_writeCommand(ILI9341_CMD_PWRA);
_writeData(0x39);
_writeData(0x2C);
_writeData(0x00);
_writeData(0x34);
_writeData(0x02);
_writeCommand(ILI9341_CMD_PWRB);
_writeData(0x00);
_writeData(0xC1);
_writeData(0x30);
_writeCommand(ILI9341_CMD_DTCA);
_writeData(0x85);
_writeData(0x00);
_writeData(0x78);
_writeCommand(ILI9341_CMD_DTCB);
_writeData(0x00);
_writeData(0x00);
_writeCommand(ILI9341_CMD_PWRSEQ);
_writeData(0x64);
_writeData(0x03);
_writeData(0x12);
_writeData(0x81);
_writeCommand(ILI9341_CMD_PRC);
_writeData(0x20);
_writeCommand(ILI9341_CMD_PWR1);
_writeData(0x23);
_writeCommand(ILI9341_CMD_PWR2);
_writeData(0x10);
_writeCommand(ILI9341_CMD_VCOM1);
_writeData(0x3E);
_writeData(0x28);
_writeCommand(ILI9341_CMD_VCOM2);
_writeData(0x86);
_writeCommand(ILI9341_CMD_MAC);
_writeData(0x40);
_writeCommand(ILI9341_CMD_PIXELFORMAT);
_writeData(0x55);
_writeCommand(ILI9341_CMD_FRC);
_writeData(0x00);
_writeData(0x18);
_writeCommand(ILI9341_CMD_DFC);
_writeData(0x08);
_writeData(0x82);
_writeData(0x27);
_writeCommand(ILI9341_CMD_3GAMMAEN);
_writeData(0x00);
_writeCommand(ILI9341_CMD_COLADDR);
_writeData(0x00);
_writeData(0x00);
_writeData(0x00);
_writeData(0xEF);
_writeCommand(ILI9341_CMD_PAGEADDR);
_writeData(0x00);
_writeData(0x00);
_writeData(0x01);
_writeData(0x3F);
_writeCommand(ILI9341_CMD_GAMMA);
_writeData(0x01);
_writeCommand(ILI9341_CMD_PGAMMA);
_writeData(0x0F);
_writeData(0x31);
_writeData(0x2B);
_writeData(0x0C);
_writeData(0x0E);
_writeData(0x08);
_writeData(0x4E);
_writeData(0xF1);
_writeData(0x37);
_writeData(0x07);
_writeData(0x10);
_writeData(0x03);
_writeData(0x0E);
_writeData(0x09);
_writeData(0x00);
_writeCommand(ILI9341_CMD_NGAMMA);
_writeData(0x00);
_writeData(0x0E);
_writeData(0x14);
_writeData(0x03);
_writeData(0x11);
_writeData(0x07);
_writeData(0x31);
_writeData(0xC1);
_writeData(0x48);
_writeData(0x08);
_writeData(0x0F);
_writeData(0x0C);
_writeData(0x31);
_writeData(0x36);
_writeData(0x0F);
_writeCommand(ILI9341_CMD_SLEEPOUT);
_writeCommand(ILI9341_CMD_DISPLAYON);
}
void FT9341_Init1(ili9341_send_cmd_data_t sendCmdData)
{
SDK_DelayAtLeastUs(ILI9341_RESET_CANCEL_MS * 1000U, SDK_DEVICE_MAXIMUM_CPU_CLOCK_FREQUENCY);
sendCmdData(ILI9341_CMD_PWRA, (const uint8_t[]){0x39U, 0x2CU, 0x00U, 0x34U, 0x02U}, 5u);
sendCmdData(ILI9341_CMD_PWRB, (const uint8_t[]){0x00U, 0xc1U, 0x30U}, 3u);
sendCmdData(ILI9341_CMD_DTCA, (const uint8_t[]){0x85U, 0x00U, 0x78U}, 3u);
sendCmdData(ILI9341_CMD_DTCB, (const uint8_t[]){0x00U, 0x00U}, 2u);
sendCmdData(ILI9341_CMD_PWRSEQ, (const uint8_t[]){0x64U, 0x03U, 0x12U, 0x81U}, 4u);
sendCmdData(ILI9341_CMD_PRC, (const uint8_t[]){0x20U}, 1u);
sendCmdData(ILI9341_CMD_PWR1, (const uint8_t[]){0x23U}, 1u);
sendCmdData(ILI9341_CMD_PWR2, (const uint8_t[]){0x10U}, 1u);
sendCmdData(ILI9341_CMD_VCOM1, (const uint8_t[]){0x3EU, 0x28U}, 2u);
sendCmdData(ILI9341_CMD_VCOM2, (const uint8_t[]){0x86U}, 1u);
sendCmdData(ILI9341_CMD_MAC, (const uint8_t[]){0x40U}, 1u);
sendCmdData(ILI9341_CMD_PIXELFORMAT, (const uint8_t[]){0x55U}, 1u);
sendCmdData(ILI9341_CMD_FRC, (const uint8_t[]){0x00U, 0x18U}, 2u);
sendCmdData(ILI9341_CMD_DFC, (const uint8_t[]){0x08U, 0x82U, 0x27U}, 3u);
sendCmdData(ILI9341_CMD_3GAMMAEN, (const uint8_t[]){0x00U}, 1u);
sendCmdData(ILI9341_CMD_COLADDR, (const uint8_t[]){0x00U, 0x00U, 0x00U, 0xEFU}, 4u);
sendCmdData(ILI9341_CMD_PAGEADDR, (const uint8_t[]){0x00U, 0x00U, 0x01U, 0x3FU}, 4u);
sendCmdData(ILI9341_CMD_GAMMA, (const uint8_t[]){0x01U}, 1u);
sendCmdData(ILI9341_CMD_PGAMMA,
(const uint8_t[]){0x0FU, 0x31U, 0x2BU, 0x0CU, 0x0EU, 0x08U, 0x4EU, 0xF1U, 0x37U, 0x07U, 0x10U, 0x03U,
0x0EU, 0x09U, 0x00U},
15u);
sendCmdData(ILI9341_CMD_NGAMMA,
(const uint8_t[]){0x00U, 0x0EU, 0x14U, 0x03U, 0x11U, 0x07U, 0x31U, 0xC1U, 0x48U, 0x08U, 0x0FU, 0x0CU,
0x31U, 0x36U, 0x0FU},
15u);
sendCmdData(ILI9341_CMD_SLEEPOUT, NULL, 0U);
sendCmdData(ILI9341_CMD_DISPLAYON, NULL, 0U);
}