V1.2.9 删除SEEKFREE_IPS200_PARALLEL8文件,新增SEEKFREE_IPS200,此文件包含原有的2寸屏并口驱动也包含最新的2寸屏串口驱动

This commit is contained in:
TEK-ZHANGSY\Administrator
2022-05-17 17:37:03 +08:00
parent 927bc420c1
commit cf458aebe8
189 changed files with 16145 additions and 14353 deletions

View File

@@ -1,3 +1,5 @@
V1.2.9
ɾ<><C9BE>SEEKFREE_IPS200_PARALLEL8<4C>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SEEKFREE_IPS200<30><30><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD>е<EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
V1.2.8
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><D7B2><EFBFBD><EFBFBD><EFBFBD>PCLK_MODE<44><45>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>λ

View File

@@ -61,7 +61,7 @@
#include "SEEKFREE_MMA8451.h"
#include "SEEKFREE_L3G4200D.h"
#include "SEEKFREE_WIRELESS.h"
#include "SEEKFREE_IPS200_PARALLEL8.h"
#include "SEEKFREE_IPS200.h"
#include "SEEKFREE_7725.h"
#include "SEEKFREE_RDA5807.h"
#include "SEEKFREE_7725_UART.h"

View File

@@ -24,7 +24,7 @@
#include "IfxQspi.h"
#include "zf_assert.h"
#include "zf_spi.h"
#include "zf_gpio.h"
#define MAX_BAUD 50000000
@@ -183,7 +183,62 @@ void spi_mux(SPIN_enum spi_n, SPI_PIN_enum sck_pin, SPI_PIN_enum mosi_pin, SPI_P
}
uint8 get_spi_cs_pin(SPI_PIN_enum cs_pin)
{
if (SPI0_CS0_P20_8 == cs_pin) return gpio_get(P20_8);
else if (SPI0_CS1_P20_9 == cs_pin) return gpio_get(P20_9);
else if (SPI0_CS2_P20_13 == cs_pin) return gpio_get(P20_13);
else if (SPI0_CS3_P11_10 == cs_pin) return gpio_get(P11_10);
else if (SPI0_CS4_P11_11 == cs_pin) return gpio_get(P11_11);
else if (SPI0_CS5_P11_2 == cs_pin) return gpio_get(P11_2);
else if (SPI0_CS6_P20_10 == cs_pin) return gpio_get(P20_10);
else if (SPI0_CS7_P33_5 == cs_pin) return gpio_get(P33_5);
else if (SPI0_CS8_P20_6 == cs_pin) return gpio_get(P20_6);
else if (SPI0_CS9_P20_3 == cs_pin) return gpio_get(P20_3);
else if (SPI0_CS13_P15_0 == cs_pin) return gpio_get(P15_0);
else if (SPI1_CS0_P20_8 == cs_pin) return gpio_get(P20_8);
else if (SPI1_CS1_P20_9 == cs_pin) return gpio_get(P20_9);
else if (SPI1_CS2_P20_13 == cs_pin) return gpio_get(P20_13);
else if (SPI1_CS3_P11_10 == cs_pin) return gpio_get(P11_10);
else if (SPI1_CS4_P11_11 == cs_pin) return gpio_get(P11_11);
else if (SPI1_CS5_P11_2 == cs_pin) return gpio_get(P11_2);
else if (SPI1_CS6_P33_10 == cs_pin) return gpio_get(P33_10);
else if (SPI1_CS7_P33_5 == cs_pin) return gpio_get(P33_5);
else if (SPI1_CS8_P10_4 == cs_pin) return gpio_get(P10_4);
else if (SPI1_CS9_P10_5 == cs_pin) return gpio_get(P10_5);
else if (SPI1_CS10_P10_0 == cs_pin) return gpio_get(P10_0);
else if (SPI2_CS0_P15_2 == cs_pin) return gpio_get(P15_2);
else if (SPI2_CS1_P14_2 == cs_pin) return gpio_get(P14_2);
else if (SPI2_CS2_P14_6 == cs_pin) return gpio_get(P14_6);
else if (SPI2_CS3_P14_3 == cs_pin) return gpio_get(P14_3);
else if (SPI2_CS5_P15_1 == cs_pin) return gpio_get(P15_1);
else if (SPI2_CS6_P33_13 == cs_pin) return gpio_get(P33_13);
else if (SPI2_CS7_P20_10 == cs_pin) return gpio_get(P20_10);
else if (SPI2_CS8_P20_6 == cs_pin) return gpio_get(P20_6);
else if (SPI2_CS9_P20_3 == cs_pin) return gpio_get(P20_3);
else if (SPI3_CS0_P02_4 == cs_pin) return gpio_get(P02_4);
else if (SPI3_CS1_P02_0 == cs_pin) return gpio_get(P02_0);
else if (SPI3_CS1_P33_9 == cs_pin) return gpio_get(P33_9);
else if (SPI3_CS2_P02_1 == cs_pin) return gpio_get(P02_1);
else if (SPI3_CS2_P33_8 == cs_pin) return gpio_get(P33_8);
else if (SPI3_CS3_P02_2 == cs_pin) return gpio_get(P02_2);
else if (SPI3_CS4_P02_3 == cs_pin) return gpio_get(P02_3);
else if (SPI3_CS4_P23_5 == cs_pin) return gpio_get(P23_5);
else if (SPI3_CS5_P02_8 == cs_pin) return gpio_get(P02_8);
else if (SPI3_CS6_P00_8 == cs_pin) return gpio_get(P00_8);
else if (SPI3_CS7_P00_9 == cs_pin) return gpio_get(P00_9);
else if (SPI3_CS7_P33_7 == cs_pin) return gpio_get(P33_7);
else if (SPI3_CS8_P10_5 == cs_pin) return gpio_get(P10_5);
else if (SPI3_CS11_P33_10 == cs_pin) return gpio_get(P33_10);
else if (SPI3_CS12_P22_2 == cs_pin) return gpio_get(P22_2);
else if (SPI3_CS13_P23_1 == cs_pin) return gpio_get(P23_1);
else
{
ZF_ASSERT(FALSE);
return 0;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>CS<43><53><EFBFBD>Ŵ<EFBFBD><C5B4><EFBFBD>
}
}
//-------------------------------------------------------------------------------------------------------------------
@@ -335,6 +390,7 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
while(moudle->STATUS.B.RXFIFOLEVEL == 0);
*midata = (uint8)IfxQspi_readReceiveFifo(moudle);
}
while(!get_spi_cs_pin(cs_pin));
}

View File

@@ -264,7 +264,7 @@ void lcd_init(void)
lcd_writeData(0x05);
lcd_writeIndex(0x29);
lcd_clear(WHITE);//ȫ<><C8AB>
lcd_clear(RGB565_WHITE);//ȫ<><C8AB>
}
@@ -550,7 +550,7 @@ void showimage(const unsigned char *p)
{
int i,j,k;
unsigned char picH,picL;
lcd_clear(WHITE); //<2F><><EFBFBD><EFBFBD>
lcd_clear(RGB565_WHITE); //<2F><><EFBFBD><EFBFBD>
for(k=0;k<4;k++)
{
@@ -716,8 +716,8 @@ void lcd_displayimage7725(uint8 *p, uint16 width, uint16 height)
p++;
for(j=0; j<8; j++)
{
if( (temp<<j)&0x80 ) lcd_writedata_16bit(WHITE);
else lcd_writedata_16bit(BLACK);
if( (temp<<j)&0x80 ) lcd_writedata_16bit(RGB565_WHITE);
else lcd_writedata_16bit(RGB565_BLACK);
}
}
}

View File

@@ -78,10 +78,10 @@
//<2F><><EFBFBD><EFBFBD>д<EFBFBD>ֱʵ<D6B1><CAB5><EFBFBD>ɫ
#define TFT_PENCOLOR RED
#define TFT_PENCOLOR RGB565_RED
//<2F><><EFBFBD><EFBFBD><E5B1B3><EFBFBD><EFBFBD>ɫ
#define TFT_BGCOLOR WHITE
#define TFT_BGCOLOR RGB565_WHITE

View File

@@ -26,16 +26,16 @@
//-------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ----------
#define RED 0xF800 //<2F><>ɫ
#define BLUE 0x001F //<2F><>ɫ
#define YELLOW 0xFFE0 //<2F><>ɫ
#define GREEN 0x07E0 //<2F><>ɫ
#define WHITE 0xFFFF //<2F><>ɫ
#define BLACK 0x0000 //<2F><>ɫ
#define GRAY 0X8430 //<2F><>ɫ
#define BROWN 0XBC40 //<2F><>ɫ
#define PURPLE 0XF81F //<2F><>ɫ
#define PINK 0XFE19 //<2F><>ɫ
#define RGB565_RED 0xF800 //<2F><>ɫ
#define RGB565_BLUE 0x001F //<2F><>ɫ
#define RGB565_YELLOW 0xFFE0 //<2F><>ɫ
#define RGB565_GREEN 0x07E0 //<2F><>ɫ
#define RGB565_WHITE 0xFFFF //<2F><>ɫ
#define RGB565_BLACK 0x0000 //<2F><>ɫ
#define RGB565_GRAY 0X8430 //<2F><>ɫ
#define RGB565_BROWN 0XBC40 //<2F><>ɫ
#define RGB565_PURPLE 0XF81F //<2F><>ɫ
#define RGB565_PINK 0XFE19 //<2F><>ɫ
extern const uint8 tft_ascii[95][16];

View File

@@ -726,8 +726,8 @@ void ips114_displayimage7725(uint8 *p, uint16 width, uint16 height)
p++;
for(j=0; j<8; j++)
{
if( (temp<<j)&0x80 ) ips114_writedata_16bit(WHITE);
else ips114_writedata_16bit(BLACK);
if( (temp<<j)&0x80 ) ips114_writedata_16bit(RGB565_WHITE);
else ips114_writedata_16bit(RGB565_BLACK);
}
}
}

View File

@@ -77,10 +77,10 @@
//<2F><><EFBFBD><EFBFBD>д<EFBFBD>ֱʵ<D6B1><CAB5><EFBFBD>ɫ
#define IPS114_PENCOLOR RED
#define IPS114_PENCOLOR RGB565_RED
//<2F><><EFBFBD><EFBFBD><E5B1B3><EFBFBD><EFBFBD>ɫ
#define IPS114_BGCOLOR WHITE
#define IPS114_BGCOLOR RGB565_WHITE

View File

@@ -11,56 +11,50 @@
* @company
* @author (QQ3184284598)
* @version doc内version文件
* @Software ADS v1.2.2
* @Target core TC264D
* @Software ADS v1.5.2
* @Target core TC264
* @Taobao https://seekfree.taobao.com/
* @date 2020-3-23
* @date 2022-05-07
* @note
线
------------------------------------
D0 SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_D0_PIN
D1 SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_D1_PIN
D2 SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_D2_PIN
D3 SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_D3_PIN
D4 SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_D4_PIN
D5 SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_D5_PIN
D6 SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_D6_PIN
D7 SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_D7_PIN
BL SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_BL_PIN
CS SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_CS_PIN
RD SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_RD_PIN
WR SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_WR_PIN
RS SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_RS_PIN
RST SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_RST_PIN
VCC 3.3V电源
GND
240*320
------------------------------------
线
------------------------------------------------------------------------
*
* // 双排排针 并口两寸屏 硬件引脚
* RD SEEKFREE_IPS200.h IPS200_RD_PIN_PARALLEL8
* WR SEEKFREE_IPS200.h IPS200_WR_PIN_PARALLEL8
* RS SEEKFREE_IPS200.h IPS200_RS_PIN_PARALLEL8
* RST SEEKFREE_IPS200.h IPS200_RST_PIN_PARALLEL8
* CS SEEKFREE_IPS200.h IPS200_CS_PIN_PARALLEL8
* BL SEEKFREE_IPS200.h IPS200_BL_PIN_PARALLEL8
* D0-D7 SEEKFREE_IPS200.h IPS200_Dx_PIN_PARALLEL8
* VCC 3.3V电源
* GND
* // 单排排针 SPI 两寸屏 硬件引脚
* SCL SEEKFREE_IPS200.h IPS200_SCL_PIN_SPI
* SDA SEEKFREE_IPS200.h IPS200_SDA_PIN_SPI
* RST SEEKFREE_IPS200.h IPS200_RST_PIN_SPI
* DC SEEKFREE_IPS200.h IPS200_DC_PIN_SPI
* CS SEEKFREE_IPS200.h IPS200_CS_PIN_SPI
* BL SEEKFREE_IPS200.h IPS200_BL_PIN_SPI
* VCC 3.3V电源
* GND
* 320 * 240
* ------------------------------------------------------------------------
********************************************************************************************************************/
#include "stdlib.h"
#include "string.h"
#include "stdio.h"
#include "zf_stm_systick.h"
#include "zf_gpio.h"
#include "zf_assert.h"
#include "SEEKFREE_PRINTF.h"
#include "SEEKFREE_IPS200_PARALLEL8.h"
#include "SEEKFREE_IPS200.h"
static ips200_type_enum ips200_display_type = IPS200_TYPE_SPI;
static PIN_enum ips_rst_pin = IPS200_RST_PIN_SPI;
//-------------------------------------------------------------------------------------------------------------------
// @brief 内部调用,用户无需关心
// @param void
// @param dat 数据
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_w_data(uint8 dat) //写数据
void ips200_w_data(uint8 dat) //写数据
{
IPS200_DATAPORT1 = (dat << DATA_START_NUM1) | (IPS200_DATAPORT1 & ~((uint32)(0x0F << DATA_START_NUM1)) );
IPS200_DATAPORT2 = ((dat>>4) << DATA_START_NUM2) | (IPS200_DATAPORT2 & ~((uint32)(0x0F << DATA_START_NUM2)) );
@@ -69,67 +63,94 @@ void ips200_w_data(uint8 dat) //д
//-------------------------------------------------------------------------------------------------------------------
// @brief 内部调用,用户无需关心
// @param void
// @param command 命令
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_wr_reg(uint8 command) //写命令
{
IPS200_CS(0);
IPS200_RS(0);
IPS200_RD(1);
IPS200_WR(0);
ips200_w_data(command);
IPS200_WR(1);
IPS200_CS(1);
if(IPS200_TYPE_SPI == ips200_display_type)
{
IPS200_DC(0);
spi_mosi(IPS200_SPIN,IPS200_CS_PIN_SPI,&command,NULL,1,1);
IPS200_DC(1);
}
else
{
IPS200_CS(0);
IPS200_RS(0);
IPS200_RD(1);
IPS200_WR(0);
ips200_w_data(command);
IPS200_WR(1);
IPS200_CS(1);
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief 内部调用,用户无需关心
// @param void
// @param dat 8位数据
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_wr_data(uint8 dat) //向液晶屏写一个8位数据
{
IPS200_CS(0);
IPS200_RS(1);
IPS200_RD(1);
IPS200_WR(0);
ips200_w_data(dat);
IPS200_WR(1);
IPS200_CS(1);
if(IPS200_TYPE_SPI == ips200_display_type)
{
spi_mosi(IPS200_SPIN,IPS200_CS_PIN_SPI,&dat,NULL,1,1);
}
else
{
IPS200_CS(0);
IPS200_RS(1);
IPS200_RD(1);
IPS200_WR(0);
ips200_w_data(dat);
IPS200_WR(1);
IPS200_CS(1);
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief 内部调用,用户无需关心
// @param void
// @param dat 16位数据
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_wr_data16(uint16 dat) //向液晶屏写一个16位数据
{
IPS200_CS(0);
IPS200_RS(1);
IPS200_RD(1);
IPS200_WR(0);
ips200_w_data((uint8)(dat>>8));
IPS200_WR(1);
IPS200_WR(0);
ips200_w_data((uint8)(dat));
IPS200_WR(1);
IPS200_CS(1);
if(IPS200_TYPE_SPI == ips200_display_type)
{
uint8 dat1[2];
dat1[0] = dat >> 8;
dat1[1] = (uint8)dat;
spi_mosi(IPS200_SPIN,IPS200_CS_PIN_SPI,dat1,NULL,2,1);
}
else
{
IPS200_CS(0);
IPS200_RS(1);
IPS200_RD(1);
IPS200_WR(0);
ips200_w_data((uint8)(dat>>8));
IPS200_WR(1);
IPS200_WR(0);
ips200_w_data((uint8)(dat));
IPS200_WR(1);
IPS200_CS(1);
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief 内部调用,用户无需关心
// @param void
// @param com 命令
// @param dat 数据
// @return
// @since v1.0
// Sample usage:
@@ -143,8 +164,11 @@ void ips200_w_reg(uint8 com,uint8 dat) //д
//-------------------------------------------------------------------------------------------------------------------
// @brief 内部调用,用户无需关心
// @param void
// @brief 设置显示区域 内部调用
// @param x1 起始x轴坐标
// @param y1 起始y轴坐标
// @param x2 结束x轴坐标
// @param y2 结束y轴坐标
// @return
// @since v1.0
// Sample usage:
@@ -165,28 +189,42 @@ void ips200_address_set(uint16 x1,uint16 y1,uint16 x2,uint16 y2)
//-------------------------------------------------------------------------------------------------------------------
// @brief 2.0寸 IPS液晶初始化
// @return void
// @return type_select 并口或者串口选择
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_init(void)
void ips200_init(ips200_type_enum type_select)
{
gpio_init(IPS200_D0_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_D1_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_D2_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_D3_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_D4_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_D5_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_D6_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_D7_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_BL_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_CS_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_RST_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_RS_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_WR_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_RD_PIN, GPO, 0, PUSHPULL);
if(IPS200_TYPE_SPI == type_select)
{
ips200_display_type = IPS200_TYPE_SPI;
ips_rst_pin = IPS200_RST_PIN_SPI;
spi_init(IPS200_SPIN, IPS200_SCL_PIN_SPI, IPS200_SDA_PIN_SPI, IPS200_SDA_IN_PIN_SPI, IPS200_CS_PIN_SPI, 0, 30*1000*1000);//硬件SPI初始化
gpio_init(IPS200_BL_PIN_SPI,GPO,1,PUSHPULL);
gpio_init(IPS200_DC_PIN_SPI,GPO,0,PUSHPULL);
gpio_init(ips_rst_pin,GPO,0,PUSHPULL);
}
else
{
ips200_display_type = IPS200_TYPE_PARALLEL8;
ips_rst_pin = IPS200_RST_PIN_PARALLEL8;
gpio_init(IPS200_D0_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D1_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D2_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D3_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D4_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D5_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D6_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D7_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_BL_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_CS_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(ips_rst_pin, GPO, 0, PUSHPULL);
gpio_init(IPS200_RS_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_WR_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_RD_PIN_PARALLEL8, GPO, 0, PUSHPULL);
}
IPS200_BL(1);
IPS200_RST(0);
systick_delay_ms(STM0, 5);
@@ -203,9 +241,6 @@ void ips200_init(void)
else ips200_wr_data(0xA0);
ips200_wr_reg(0x3A);
ips200_wr_data(0x05);
@@ -276,7 +311,7 @@ void ips200_init(void)
ips200_wr_reg(0x21);
ips200_wr_reg(0x29);
ips200_clear(IPS200_BGCOLOR); //初始化为白屏
ips200_clear(IPS200_BGCOLOR); //初始化为白屏
}
@@ -844,8 +879,8 @@ void ips200_displayimage7725(uint8 *p, uint16 width, uint16 height)
p++;
for(j=0; j<8; j++)
{
if( (temp<<j)&0x80 ) ips200_wr_data16(WHITE);
else ips200_wr_data16(BLACK);
if( (temp<<j)&0x80 ) ips200_wr_data16(RGB565_WHITE);
else ips200_wr_data16(RGB565_BLACK);
}
}
}

View File

@@ -0,0 +1,199 @@
/*/*********************************************************************************************************************
* COPYRIGHT NOTICE
* Copyright (c) 2020,<2C><><EFBFBD>ɿƼ<C9BF>
* All rights reserved.
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>QQȺ<51><C8BA><EFBFBD><EFBFBD>Ⱥ<EFBFBD><C8BA>824575535
*
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>У<EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5>;<EFBFBD><CDBE>
* <20><>ӭ<EFBFBD><D3AD>λʹ<CEBB>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EBB1A3><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC>İ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @file 2.0<EFBFBD><EFBFBD>IPS<EFBFBD><EFBFBD>Ļ
* @company <09>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>޹<EFBFBD>˾
* @author <09><><EFBFBD>ɿƼ<C9BF>(QQ3184284598)
* @version <09>鿴doc<6F><63>version<6F>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
* @Software ADS v1.5.2
* @Target core TC264
* @Taobao https://seekfree.taobao.com/
* @date 2020-05-07
* @note
<20><><EFBFBD>߶<EFBFBD><DFB6>
------------------------------------
* ģ<><C4A3><EFBFBD>ܽ<EFBFBD> <20><>Ƭ<EFBFBD><C6AC><EFBFBD>ܽ<EFBFBD>
* // ˫<><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ӳ<><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* RD <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RD_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* WR <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_WR_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* RS <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RS_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* RST <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RST_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* CS <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_CS_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* BL <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_BL_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* D0-D7 <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_Dx_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SPI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ӳ<><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* SCL <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_SCL_PIN_SPI <20><EFBFBD><EAB6A8>
* SDA <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_SDA_PIN_SPI <20><EFBFBD><EAB6A8>
* RST <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RST_PIN_SPI <20><EFBFBD><EAB6A8>
* DC <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_DC_PIN_SPI <20><EFBFBD><EAB6A8>
* CS <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_CS_PIN_SPI <20><EFBFBD><EAB6A8>
* BL <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_BL_PIN_SPI <20><EFBFBD><EAB6A8>
* <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>
* VCC 3.3V<EFBFBD><EFBFBD>Դ
* GND <20><>Դ<EFBFBD><D4B4>
* <20><><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD> 320 * 240
* ------------------------------------
********************************************************************************************************************/
#ifndef _SEEKFREE_IPS200_H
#define _SEEKFREE_IPS200_H
#include "common.h"
#include "stdlib.h"
#include "string.h"
#include "stdio.h"
#include "zf_stm_systick.h"
#include "zf_gpio.h"
#include "zf_assert.h"
#include "SEEKFREE_PRINTF.h"
#include "zf_spi.h"
#include "SEEKFREE_FUN.h"
#include "SEEKFREE_FONT.h"
//-------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB>SEEKFREE_FONT.h<>ļ<EFBFBD><C4BC>ж<EFBFBD><D0B6><EFBFBD>----------
//#define RED 0xF800 //<2F><>ɫ
//#define BLUE 0x001F //<2F><>ɫ
//#define YELLOW 0xFFE0 //<2F><>ɫ
//#define GREEN 0x07E0 //<2F><>ɫ
//#define WHITE 0xFFFF //<2F><>ɫ
//#define BLACK 0x0000 //<2F><>ɫ
//#define GRAY 0X8430 //<2F><>ɫ
//#define BROWN 0XBC40 //<2F><>ɫ
//#define PURPLE 0XF81F //<2F><>ɫ
//#define PINK 0XFE19 //<2F><>ɫ
#define IPS200_BGCOLOR RGB565_WHITE //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
#define IPS200_PENCOLOR RGB565_RED //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
// <20><><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD><C3B5>ǵ<EFBFBD><C7B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ SPI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>
#define IPS200_SPIN SPI_2 //<2F><><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD>SPI<50><49>
#define IPS200_SCL_PIN_SPI SPI2_SCLK_P15_3 //<2F><><EFBFBD><EFBFBD>SPI_SCK<43><4B><EFBFBD><EFBFBD>
#define IPS200_SDA_PIN_SPI SPI2_MOSI_P15_5 //<2F><><EFBFBD><EFBFBD>SPI_MOSI<53><49><EFBFBD><EFBFBD>
#define IPS200_SDA_IN_PIN_SPI SPI2_MISO_P15_4 //<2F><><EFBFBD><EFBFBD>SPI_MISO<53><4F><EFBFBD><EFBFBD> IPSû<53><C3BB>MISO<53><4F><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><C8BB>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><E5A3AC>spi<70>ij<EFBFBD>ʼ<EFBFBD><CABC>ʱ<EFBFBD><CAB1>Ҫʹ<D2AA><CAB9>
#define IPS200_CS_PIN_SPI SPI2_CS0_P15_2 //<2F><><EFBFBD><EFBFBD>SPI_CS<43><53><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD><C3B5>ǵ<EFBFBD><C7B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ SPI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>
#define IPS200_RST_PIN_SPI P15_1 // Һ<><D2BA><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD>Ŷ<EFBFBD><C5B6><EFBFBD>
#define IPS200_DC_PIN_SPI P15_0
#define IPS200_BL_PIN_SPI P15_4
//<2F><><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD>˫<EFBFBD><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>
//<2F><><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB>ѡ<EFBFBD><D1A1>B C D<><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD><CBBF>е<EFBFBD><D0B5><EFBFBD><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>ٶ<EFBFBD>
#define IPS200_RD_PIN_PARALLEL8 P15_3
#define IPS200_WR_PIN_PARALLEL8 P15_5
#define IPS200_RS_PIN_PARALLEL8 P15_1
#define IPS200_RST_PIN_PARALLEL8 P15_0
#define IPS200_CS_PIN_PARALLEL8 P15_2
#define IPS200_BL_PIN_PARALLEL8 P15_4
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>˫<EFBFBD><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õõ<C3B5>
//D0-D3<44>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>C0-C3,C1-C4<43>ȵȣ<C8B5>
//D4-D7<44>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>B0-B3,B1-B4<42>ȵȡ<C8B5>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD>ͬ<EFBFBD>˿ڵ<CBBF><DAB5><EFBFBD>˼<EFBFBD><CBBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>D0-D3<44><33>C1-C4<43><34><EFBFBD>ӣ<EFBFBD>D4-D7<44><37>B2-B5<42><35><EFBFBD>ӡ<EFBFBD>
//<2F>л<EFBFBD><D0BB><EFBFBD><EFBFBD>ź<EFBFBD>ע<EFBFBD><D7A2><EFBFBD>޸<EFBFBD>IPS200_DATA_PORT1<54><31>IPS200_DATA_PORT2<54><EFBFBD><EAB6A8>
#define IPS200_D0_PIN_PARALLEL8 P11_9
#define IPS200_D1_PIN_PARALLEL8 P11_10
#define IPS200_D2_PIN_PARALLEL8 P11_11
#define IPS200_D3_PIN_PARALLEL8 P11_12
#define IPS200_D4_PIN_PARALLEL8 P13_0
#define IPS200_D5_PIN_PARALLEL8 P13_1
#define IPS200_D6_PIN_PARALLEL8 P13_2
#define IPS200_D7_PIN_PARALLEL8 P13_3
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݶ˿<DDB6><CBBF><EFBFBD><EFBFBD><EFBFBD>PORT<52><54><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD>ź<EFBFBD><C5BA><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PORT<52><54><EFBFBD>и<EFBFBD><D0B8><EFBFBD>
#define IPS200_DATA_PORT1 3 //0<><30>P00<30>˿<EFBFBD> 1<><31>P02<30>˿<EFBFBD> 2<><32>P10<31>˿<EFBFBD> 3<><33>P11<31>˿<EFBFBD> 4<><34>P13<31>˿<EFBFBD> 5<><35>P14<31>˿<EFBFBD> 6<><36>P15<31>˿<EFBFBD> 7<><37>P20<32>˿<EFBFBD> 8<><38>P21<32>˿<EFBFBD> 9<><39>P22<32>˿<EFBFBD> 10<31><30>P23<32>˿<EFBFBD> 11<31><31>P32<33>˿<EFBFBD> 12<31><32>P33<33>˿<EFBFBD>
#define IPS200_DATAPORT1 (((Ifx_P *)IfxPort_cfg_indexMap[IPS200_DATA_PORT1].module)->OUT.U) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
#define DATA_START_NUM1 (IPS200_D0_PIN_PARALLEL8&0x1f) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
#define IPS200_DATA_PORT2 4 //0<><30>P00<30>˿<EFBFBD> 1<><31>P02<30>˿<EFBFBD> 2<><32>P10<31>˿<EFBFBD> 3<><33>P11<31>˿<EFBFBD> 4<><34>P13<31>˿<EFBFBD> 5<><35>P14<31>˿<EFBFBD> 6<><36>P15<31>˿<EFBFBD> 7<><37>P20<32>˿<EFBFBD> 8<><38>P21<32>˿<EFBFBD> 9<><39>P22<32>˿<EFBFBD> 10<31><30>P23<32>˿<EFBFBD> 11<31><31>P32<33>˿<EFBFBD> 12<31><32>P33<33>˿<EFBFBD>
#define IPS200_DATAPORT2 (((Ifx_P *)IfxPort_cfg_indexMap[IPS200_DATA_PORT2].module)->OUT.U) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
#define DATA_START_NUM2 (IPS200_D4_PIN_PARALLEL8&0x1f) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
#define IPS200_BL(x) gpio_set(IPS200_BL_PIN_PARALLEL8,x)
#define IPS200_CS(x) gpio_set(IPS200_CS_PIN_PARALLEL8,x)
#define IPS200_RD(x) gpio_set(IPS200_RD_PIN_PARALLEL8,x)
#define IPS200_WR(x) gpio_set(IPS200_WR_PIN_PARALLEL8,x)
#define IPS200_RS(x) gpio_set(IPS200_RS_PIN_PARALLEL8,x)
#define IPS200_RST(x) gpio_set(ips_rst_pin,x)
#define IPS200_DC(x) gpio_set(IPS200_DC_PIN_SPI,x)
#define IPS200_W 240
#define IPS200_H 320
typedef enum
{
IPS200_TYPE_SPI, // SPI <20><><EFBFBD><EFBFBD>
IPS200_TYPE_PARALLEL8, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}ips200_type_enum;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
//0 <20><><EFBFBD><EFBFBD>ģʽ
//1 <20><><EFBFBD><EFBFBD>ģʽ <20><>ת180<38><30>
//2 <20><><EFBFBD><EFBFBD>ģʽ
//3 <20><><EFBFBD><EFBFBD>ģʽ <20><>ת180<38><30>
#define IPS200_DISPLAY_DIR 0
#if (0==IPS200_DISPLAY_DIR || 1==IPS200_DISPLAY_DIR)
#define IPS200_X_MAX IPS200_W //Һ<><D2BA>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define IPS200_Y_MAX IPS200_H //Һ<><D2BA>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#elif (2==IPS200_DISPLAY_DIR || 3==IPS200_DISPLAY_DIR)
#define IPS200_X_MAX IPS200_H //Һ<><D2BA>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define IPS200_Y_MAX IPS200_W //Һ<><D2BA>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#else
#error "IPS200_DISPLAY_DIR <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#endif
void ips200_init(ips200_type_enum type_select); //<2F><>ʼ<EFBFBD><CABC>Ӳ<EFBFBD><D3B2>
void ips200_w_data(uint8 dat);
void ips200_wr_reg(uint8 com);
void ips200_wr_data(uint8 dat);
void ips200_wr_data16(uint16 dat);
void ips200_w_reg(uint8 com,uint8 dat);
void ips200_address_set(uint16 x1,uint16 y1,uint16 x2,uint16 y2);
void ips200_clear(uint16 color);
void ips200_drawpoint(uint16 x,uint16 y,uint16 color);
void ips200_showchar(uint16 x,uint16 y,const int8 dat);
void ips200_showstr(uint16 x,uint16 y,const int8 dat[]);
void ips200_showint8(uint16 x,uint16 y,int8 dat);
void ips200_showuint8(uint16 x,uint16 y,uint8 dat);
void ips200_showint16(uint16 x,uint16 y,int16 dat);
void ips200_showuint16(uint16 x,uint16 y,uint16 dat);
void ips200_showint32(uint16 x,uint16 y,int dat,uint8 num);
void ips200_showfloat(uint16 x,uint16 y,double dat,int8 num,int8 pointnum);
void ips200_showimage(uint16 x,uint16 y,uint16 w,uint16 l,const unsigned char *p);
void ips200_displayimage032(uint8 *p, uint16 width, uint16 height);
void ips200_displayimage032_zoom(uint8 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage032_zoom1(uint8 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_zoom1(uint16 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_grayscale_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage7725(uint8 *p, uint16 width, uint16 height);
void ips200_display_chinese(uint16 x, uint16 y, uint8 size, const uint8 *p, uint8 number, uint16 color);
#endif

View File

@@ -1,180 +0,0 @@
/*/*********************************************************************************************************************
* COPYRIGHT NOTICE
* Copyright (c) 2020,<2C><><EFBFBD>ɿƼ<C9BF>
* All rights reserved.
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>QQȺ<51><C8BA><EFBFBD><EFBFBD>Ⱥ<EFBFBD><C8BA>824575535
*
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>У<EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5>;<EFBFBD><CDBE>
* <20><>ӭ<EFBFBD><D3AD>λʹ<CEBB>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EBB1A3><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC>İ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @file 2.0<EFBFBD><EFBFBD>IPS<EFBFBD><EFBFBD>Ļ
* @company <09>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>޹<EFBFBD>˾
* @author <09><><EFBFBD>ɿƼ<C9BF>(QQ3184284598)
* @version <09>鿴doc<6F><63>version<6F>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
* @Software ADS v1.2.2
* @Target core TC264D
* @Taobao https://seekfree.taobao.com/
* @date 2020-3-23
* @note
<09><><EFBFBD>߶<EFBFBD><DFB6>
------------------------------------
ģ<><C4A3><EFBFBD>ܽ<EFBFBD> <09><>Ƭ<EFBFBD><C6AC><EFBFBD>ܽ<EFBFBD>
D0 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D0_PIN <20><EFBFBD><EAB6A8>
D1 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D1_PIN <20><EFBFBD><EAB6A8>
D2 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D2_PIN <20><EFBFBD><EAB6A8>
D3 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D3_PIN <20><EFBFBD><EAB6A8>
D4 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D4_PIN <20><EFBFBD><EAB6A8>
D5 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D5_PIN <20><EFBFBD><EAB6A8>
D6 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D6_PIN <20><EFBFBD><EAB6A8>
D7 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D7_PIN <20><EFBFBD><EAB6A8>
BL <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_BL_PIN <20><EFBFBD><EAB6A8>
CS <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_CS_PIN <20><EFBFBD><EAB6A8>
RD <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_RD_PIN <20><EFBFBD><EAB6A8>
WR <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_WR_PIN <20><EFBFBD><EAB6A8>
RS <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_RS_PIN <20><EFBFBD><EAB6A8>
RST <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_RST_PIN <20><EFBFBD><EAB6A8>
<09><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>
VCC 3.3V<EFBFBD><EFBFBD>Դ
GND <20><>Դ<EFBFBD><D4B4>
<09><><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>240*320
------------------------------------
********************************************************************************************************************/
#ifndef _SEEKFREE_IPS200PARALLEL8_H
#define _SEEKFREE_IPS200PARALLEL8_H
#include "common.h"
#include "SEEKFREE_FONT.h"
//-------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB>SEEKFREE_FONT.h<>ļ<EFBFBD><C4BC>ж<EFBFBD><D0B6><EFBFBD>----------
//#define RED 0xF800 //<2F><>ɫ
//#define BLUE 0x001F //<2F><>ɫ
//#define YELLOW 0xFFE0 //<2F><>ɫ
//#define GREEN 0x07E0 //<2F><>ɫ
//#define WHITE 0xFFFF //<2F><>ɫ
//#define BLACK 0x0000 //<2F><>ɫ
//#define GRAY 0X8430 //<2F><>ɫ
//#define BROWN 0XBC40 //<2F><>ɫ
//#define PURPLE 0XF81F //<2F><>ɫ
//#define PINK 0XFE19 //<2F><>ɫ
#define IPS200_BGCOLOR WHITE //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
#define IPS200_PENCOLOR RED //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
//<2F><><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB>ѡ<EFBFBD><D1A1>B C D<><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD><CBBF>е<EFBFBD><D0B5><EFBFBD><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>ٶ<EFBFBD>
#define IPS200_RD_PIN P15_3
#define IPS200_WR_PIN P15_5
#define IPS200_RS_PIN P15_1
#define IPS200_RST_PIN P15_0
#define IPS200_CS_PIN P15_2
#define IPS200_BL_PIN P15_4
//D0-D3<44>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>C0-C3,C1-C4<43>ȵȣ<C8B5>
//D4-D7<44>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>B0-B3,B1-B4<42>ȵȡ<C8B5>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD>ͬ<EFBFBD>˿ڵ<CBBF><DAB5><EFBFBD>˼<EFBFBD><CBBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>D0-D3<44><33>C1-C4<43><34><EFBFBD>ӣ<EFBFBD>D4-D7<44><37>B2-B5<42><35><EFBFBD>ӡ<EFBFBD>
//<2F>л<EFBFBD><D0BB><EFBFBD><EFBFBD>ź<EFBFBD>ע<EFBFBD><D7A2><EFBFBD>޸<EFBFBD>IPS200_DATA_PORT1<54><31>IPS200_DATA_PORT2<54><EFBFBD><EAB6A8>
#define IPS200_D0_PIN P11_9
#define IPS200_D1_PIN P11_10
#define IPS200_D2_PIN P11_11
#define IPS200_D3_PIN P11_12
#define IPS200_D4_PIN P13_0
#define IPS200_D5_PIN P13_1
#define IPS200_D6_PIN P13_2
#define IPS200_D7_PIN P13_3
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݶ˿<DDB6><CBBF><EFBFBD><EFBFBD><EFBFBD>PORT<52><54><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD>ź<EFBFBD><C5BA><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PORT<52><54><EFBFBD>и<EFBFBD><D0B8><EFBFBD>
#define IPS200_DATA_PORT1 3 //0<><30>P00<30>˿<EFBFBD> 1<><31>P02<30>˿<EFBFBD> 2<><32>P10<31>˿<EFBFBD> 3<><33>P11<31>˿<EFBFBD> 4<><34>P13<31>˿<EFBFBD> 5<><35>P14<31>˿<EFBFBD> 6<><36>P15<31>˿<EFBFBD> 7<><37>P20<32>˿<EFBFBD> 8<><38>P21<32>˿<EFBFBD> 9<><39>P22<32>˿<EFBFBD> 10<31><30>P23<32>˿<EFBFBD> 11<31><31>P32<33>˿<EFBFBD> 12<31><32>P33<33>˿<EFBFBD>
#define IPS200_DATAPORT1 (((Ifx_P *)IfxPort_cfg_indexMap[IPS200_DATA_PORT1].module)->OUT.U) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
#define DATA_START_NUM1 (IPS200_D0_PIN&0x1f) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
#define IPS200_DATA_PORT2 4 //0<><30>P00<30>˿<EFBFBD> 1<><31>P02<30>˿<EFBFBD> 2<><32>P10<31>˿<EFBFBD> 3<><33>P11<31>˿<EFBFBD> 4<><34>P13<31>˿<EFBFBD> 5<><35>P14<31>˿<EFBFBD> 6<><36>P15<31>˿<EFBFBD> 7<><37>P20<32>˿<EFBFBD> 8<><38>P21<32>˿<EFBFBD> 9<><39>P22<32>˿<EFBFBD> 10<31><30>P23<32>˿<EFBFBD> 11<31><31>P32<33>˿<EFBFBD> 12<31><32>P33<33>˿<EFBFBD>
#define IPS200_DATAPORT2 (((Ifx_P *)IfxPort_cfg_indexMap[IPS200_DATA_PORT2].module)->OUT.U) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
#define DATA_START_NUM2 (IPS200_D4_PIN&0x1f) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
#define IPS200_BL(x) gpio_set(IPS200_BL_PIN,x)
#define IPS200_CS(x) gpio_set(IPS200_CS_PIN,x)
#define IPS200_RD(x) gpio_set(IPS200_RD_PIN,x)
#define IPS200_WR(x) gpio_set(IPS200_WR_PIN,x)
#define IPS200_RS(x) gpio_set(IPS200_RS_PIN,x)
#define IPS200_RST(x) gpio_set(IPS200_RST_PIN,x)
#define IPS200_W 240
#define IPS200_H 320
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
//0 <20><><EFBFBD><EFBFBD>ģʽ
//1 <20><><EFBFBD><EFBFBD>ģʽ <20><>ת180<38><30>
//2 <20><><EFBFBD><EFBFBD>ģʽ
//3 <20><><EFBFBD><EFBFBD>ģʽ <20><>ת180<38><30>
#define IPS200_DISPLAY_DIR 0
#if (0==IPS200_DISPLAY_DIR || 1==IPS200_DISPLAY_DIR)
#define IPS200_X_MAX IPS200_W //Һ<><D2BA>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define IPS200_Y_MAX IPS200_H //Һ<><D2BA>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#elif (2==IPS200_DISPLAY_DIR || 3==IPS200_DISPLAY_DIR)
#define IPS200_X_MAX IPS200_H //Һ<><D2BA>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define IPS200_Y_MAX IPS200_W //Һ<><D2BA>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#else
#error "IPS200_DISPLAY_DIR <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#endif
void ips200_init(void); //<2F><>ʼ<EFBFBD><CABC>Ӳ<EFBFBD><D3B2>
void ips200_w_data(uint8 dat);
void ips200_wr_reg(uint8 com);
void ips200_wr_data(uint8 dat);
void ips200_wr_data16(uint16 dat);
void ips200_w_reg(uint8 com,uint8 dat);
void ips200_address_set(uint16 x1,uint16 y1,uint16 x2,uint16 y2);
void ips200_clear(uint16 color);
void ips200_drawpoint(uint16 x,uint16 y,uint16 color);
void ips200_showchar(uint16 x,uint16 y,const int8 dat);
void ips200_showstr(uint16 x,uint16 y,const int8 dat[]);
void ips200_showint8(uint16 x,uint16 y,int8 dat);
void ips200_showuint8(uint16 x,uint16 y,uint8 dat);
void ips200_showint16(uint16 x,uint16 y,int16 dat);
void ips200_showuint16(uint16 x,uint16 y,uint16 dat);
void ips200_showint32(uint16 x,uint16 y,int dat,uint8 num);
void ips200_showfloat(uint16 x,uint16 y,double dat,int8 num,int8 pointnum);
void ips200_showimage(uint16 x,uint16 y,uint16 w,uint16 l,const unsigned char *p);
void ips200_displayimage032(uint8 *p, uint16 width, uint16 height);
void ips200_displayimage032_zoom(uint8 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage032_zoom1(uint8 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_zoom1(uint16 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_grayscale_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage7725(uint8 *p, uint16 width, uint16 height);
void ips200_display_chinese(uint16 x, uint16 y, uint8 size, const uint8 *p, uint8 number, uint16 color);
#endif

View File

@@ -34,7 +34,7 @@ int core0_main(void)
{
get_clk();//<2F><>ȡʱ<C8A1><CAB1>Ƶ<EFBFBD><C6B5> <20><><EFBFBD>ر<EFBFBD><D8B1><EFBFBD>
//<2F>û<EFBFBD><C3BB>ڴ˴<DAB4><CBB4><EFBFBD><EFBFBD>ø<EFBFBD><C3B8>ֳ<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD>к<EFBFBD><D0BA>ij<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
IfxCpu_emitEvent(&g_cpuSyncEvent);
IfxCpu_waitEvent(&g_cpuSyncEvent, 0xFFFF);