本程序使用的单片机为STM32F407VE,晶振大小为8MHz,用10厘米长的杜邦线和彩屏相连,彩屏为微雪(Waveshare)的3.2inch 320x240 ILI9325 Touch LCD (C)。

程序下载地址:https://pan.baidu.com/s/1LVQRdv3jZ9n5oAR_7yUZxw(提取码:awib)
(程序里面注释FSMC_D16=>RS写错了,应该是A16才对,D没有16)

运行程序时如果发现LCD ID(0号寄存器)读出来是0,说明很有可能你的彩屏的芯片不是ILI9325,而是ILI9341。ILI9341的0号命令是空操作,是读不出来ID的,而且读写屏幕的代码也有很大的差别。
关于ILI9341彩屏的驱动请参阅:https://blog.csdn.net/ZLK1214/article/details/107144250

连线时,最上排的GND 5V-IN不接,由于U1和U2没有焊,所以单片机无法控制背光开启和关闭,不用接BL-VCC以及旁边的GND、NC和BL-VTRL。电源只接最后一排的GND和3V3。

触摸芯片引脚:
TP-IRQ=>PC4(中断引脚,低电平有效,按一次触发一次)
TP-SCK=>PA5
TP-CS=>PA4
TP-SDO=>PA6
TP-SDI=>PA7

FSMC引脚:
D0~15是FSMC的16位并行数据线。LCD-CS接PD7,WR接PD5,RST接PD12。
RS接PD11(FSMC_A16),RD接PD4(FSMC_NOE),这两个引脚很容易混淆,千万不要接反了!!!接反了虽然能读出来0号寄存器为0x9325,但是后面的操作都是无效的,程序虽正确但屏幕一直为白屏。

用杜邦线连接彩屏会有一定概率出现传输错误。在示例程序中先显示了一张图片,然后再从屏幕中读回来,检查就会发现其中有极个别字节和原来的图像数据不一致。将FSMC的AddressHoldTime和DataSetupTime改到最大就没有错误了,不过刷屏的速率很慢。

【主要代码】

main.c:

#include <stdio.h>
#include <stm32f4xx.h>
#include <string.h>
#include "common.h"
#include "images.h"
#include "ILI9325.h"
#include "XPT2046.h"static void check_display(const void *image, int x, int y, int width, int height)
{int i, j, curr;int err = 0, count = 0;uint16_t pixels[50];for (i = 0; i < height; i++){for (j = 0; j < width; j += curr){curr = _countof(pixels);if (curr > width - j)curr = width - j;ILI9325_GetPixelsInRect(pixels, x + j, y + i, curr, 1);if (memcmp(pixels, (uint16_t *)image + i * width + j, curr * sizeof(uint16_t)) != 0)err++;count++;}}if (err == 0)printf("Display OK!\n");else{// 使用杜邦线连接彩屏时, 有可能会有个别字节传输出错// 将FSMC的AddressHoldTime和DataSetupTime改大可以降低错误率printf("Display error! err/count=%d/%d\n", err, count);}
}int main(void)
{int x, y;HAL_Init();clock_init();usart_init(115200);printf("STM32F407VE FSMC ILI9325\n");printf("SystemCoreClock=%u\n", SystemCoreClock);ILI9325_Init(); // 初始化彩屏ILI9325_Clear(ILI9325_COLOR_RED); // 背景色刷为红色XPT2046_Init(); // 初始化触控// 彩屏的坐标轴方向: 短边为x轴, 长边为y轴// 图片myimage是逆时针旋转了90度后转换成数组的HAL_Delay(1000);ILI9325_DrawImage(myimage, 0, 36, _countof(myimage[0]), _countof(myimage)); // 在屏幕上显示一张图片check_display(myimage, 0, 36, _countof(myimage[0]), _countof(myimage)); // 检查是否显示正确while (1){// 每按一下, 触发一次中断if (XPT2046_GetITStatus()){XPT2046_ReadPosition(&x, &y);printf("(%d,%d)\n", x, y);ILI9325_SetPixel(x, y, 0x4010);}}
}

ILI9325.c:

#include <stdio.h>
#include <stm32f4xx.h>
#include "ILI9325.h"// 因为彩屏背面的U1和U2这两个集成电路没有焊, 所以无法通过BL-VTRL引脚控制背光
// 本程序不进行背光控制, 只进行复位控制
#define RST_OFF HAL_GPIO_WritePin(GPIOD, GPIO_PIN_12, GPIO_PIN_SET)
#define RST_ON HAL_GPIO_WritePin(GPIOD, GPIO_PIN_12, GPIO_PIN_RESET)NOR_HandleTypeDef hnor;/* 清屏 */
void ILI9325_Clear(uint16_t color)
{int i = ILI9325_CX * ILI9325_CY;ILI9325_SetRegion(0, 0, ILI9325_CX - 1, ILI9325_CY - 1);ILI9325_CMD = ILI9325_CMD_MEMORY_WRITE;while (i--)ILI9325_DATA = color;
}/* 显示图片 */
void ILI9325_DrawImage(const void *image, uint16_t x, uint16_t y, uint16_t width, uint16_t height)
{const uint16_t *p = image;int i = width * height;ILI9325_SetRegion(x, y, x + width - 1, y + height - 1);ILI9325_CMD = ILI9325_CMD_MEMORY_WRITE;while (i--)ILI9325_DATA = *p++;
}/* 读取指定区域的屏幕显示内容 */
void ILI9325_GetPixelsInRect(void *pixels, uint16_t x, uint16_t y, uint16_t width, uint16_t height)
{int i, j;uint16_t *p = pixels;for (i = 0; i < height; i++){for (j = 0; j < width; j++){// 手册上有这句话: The address counter is not automatically updated when read data from the internal GRAM// 也就是说读数据的时候光标不能自己移动ILI9325_SetPos(x + j, y + i);ILI9325_CMD = ILI9325_CMD_MEMORY_READ;ILI9325_DATA; // dummy read*p++ = ILI9325_DATA;}}
}/* 初始化显示屏 */
void ILI9325_Init(void)
{uint16_t id;FSMC_NORSRAM_TimingTypeDef timing = {0};GPIO_InitTypeDef gpio;__HAL_RCC_FSMC_CLK_ENABLE();__HAL_RCC_GPIOD_CLK_ENABLE();__HAL_RCC_GPIOE_CLK_ENABLE();// PD12: RSTRST_ON;gpio.Mode = GPIO_MODE_OUTPUT_PP;gpio.Pin = GPIO_PIN_12;gpio.Pull = GPIO_NOPULL;gpio.Speed = GPIO_SPEED_FREQ_HIGH;HAL_GPIO_Init(GPIOD, &gpio);// PD0~1: FSMC_D2~3, PD4: FSMC_NOE, PD5: FSMC_NWE, PD7: FSMC_NE1, PD8~11: FSMC_D13~16, PD14~15: FSMC_D0~1// FSMC_NOE=>RD, FSMC_NWE=>WR, FSMC_D16=>RS, FSMC_NE1=>CSgpio.Alternate = GPIO_AF12_FSMC;gpio.Mode = GPIO_MODE_AF_PP;gpio.Pin = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_7 | GPIO_PIN_8 | GPIO_PIN_9 | GPIO_PIN_10 | GPIO_PIN_11 | GPIO_PIN_14 | GPIO_PIN_15;gpio.Pull = GPIO_NOPULL;gpio.Speed = GPIO_SPEED_FREQ_HIGH;HAL_GPIO_Init(GPIOD, &gpio);// PE7~15: FSMC_D4~12gpio.Pin = GPIO_PIN_7 | GPIO_PIN_8 | GPIO_PIN_9 | GPIO_PIN_10 | GPIO_PIN_11 | GPIO_PIN_12 | GPIO_PIN_13 | GPIO_PIN_14 | GPIO_PIN_15;HAL_GPIO_Init(GPIOE, &gpio);// FSMC一共有6种模式:模式1~2和模式A~D// 彩屏使用的是模式2(即NOR Flash模式)而非模式B,这是因为配置FSMC时并没有使能扩展模式hnor.Extended = FSMC_Bank1E;hnor.Instance = FSMC_Bank1;hnor.Init.MemoryDataWidth = FSMC_NORSRAM_MEM_BUS_WIDTH_16;hnor.Init.MemoryType = FSMC_MEMORY_TYPE_NOR;hnor.Init.NSBank = FSMC_NORSRAM_BANK1;hnor.Init.WriteOperation = FSMC_WRITE_OPERATION_ENABLE;timing.AddressHoldTime = 1;timing.AddressSetupTime = 0;timing.CLKDivision = 2;timing.DataLatency = 2;timing.DataSetupTime = 7;HAL_NOR_Init(&hnor, &timing, NULL);HAL_Delay(1);RST_OFF;HAL_Delay(1);ILI9325_CMD = 0;id = ILI9325_DATA;printf("LCD ID: 0x%04x\n", id);// Set SRAM internal timingILI9325_CMD = 0xe5;ILI9325_DATA = 0x78f0;// Set Driver Output ControlILI9325_CMD = 0x01;ILI9325_DATA = 0x0100;// Set 1 line inversionILI9325_CMD = 0x02;ILI9325_DATA = 0x0700;// Set GRAM write direction and BGR=1ILI9325_CMD = 0x03;ILI9325_DATA = 0x1030; // 设置扫描方向// Resize registerILI9325_CMD = 0x04;ILI9325_DATA = 0x0000;// Set the back porch and front porchILI9325_CMD = 0x08;ILI9325_DATA = 0x0207;// Set non-display area refresh cycle ISC[3:0]ILI9325_CMD = 0x09;ILI9325_DATA = 0x0000;// FMARK functionILI9325_CMD = 0x0a;ILI9325_DATA = 0x0000;// RGB interface settingILI9325_CMD = 0x0c;ILI9325_DATA = 0x0000;// Frame marker PositionILI9325_CMD = 0x0d;ILI9325_DATA = 0x0000;// RGB interface polarityILI9325_CMD = 0x0f;ILI9325_DATA = 0x0000;// Power On sequence// SAP, BT[3:0], AP, DSTB, SLP, STBILI9325_CMD = 0x10;ILI9325_DATA = 0x0000;// DC1[2:0], DC0[2:0], VC[2:0]ILI9325_CMD = 0x11;ILI9325_DATA = 0x0007;// VREG1OUT voltageILI9325_CMD = 0x12;ILI9325_DATA = 0x0000;// VDV[4:0] for VCOM amplitudeILI9325_CMD = 0x13;ILI9325_DATA = 0x0000;ILI9325_CMD = 0x07;ILI9325_DATA = 0x0001;HAL_Delay(20);// Dis-charge capacitor power voltage// SAP, BT[3:0], AP, DSTB, SLP, STB// Set DC1[2:0], DC0[2:0], VC[2:0]ILI9325_CMD = 0x10;ILI9325_DATA = 0x1090;ILI9325_CMD = 0x11;ILI9325_DATA = 0x0227;ILI9325_CMD = 0x12;ILI9325_DATA = 0x001f;// VDV[4:0] for VCOM amplitudeILI9325_CMD = 0x13;ILI9325_DATA = 0x1500;// 04 VCM[5:0] for VCOMHILI9325_CMD = 0x29;ILI9325_DATA = 0x0027;// Set Frame RateILI9325_CMD = 0x2b;ILI9325_DATA = 0x000d;// Adjust the Gamma CurveILI9325_CMD = 0x30;ILI9325_DATA = 0x0000;ILI9325_CMD = 0x31;ILI9325_DATA = 0x0603;ILI9325_CMD = 0x32;ILI9325_DATA = 0x0206;ILI9325_CMD = 0x35;ILI9325_DATA = 0x0206;ILI9325_CMD = 0x36;ILI9325_DATA = 0x0004;ILI9325_CMD = 0x37;ILI9325_DATA = 0x0105;ILI9325_CMD = 0x38;ILI9325_DATA = 0x0401;ILI9325_CMD = 0x39;ILI9325_DATA = 0x0707;ILI9325_CMD = 0x3c;ILI9325_DATA = 0x0602;ILI9325_CMD = 0x3d;ILI9325_DATA = 0x0004;// Gate Scan LineILI9325_CMD = 0x60;ILI9325_DATA = 0xa700;// NDL, VLE, REVILI9325_CMD = 0x61;ILI9325_DATA = 0x0001;// Set scrolling lineILI9325_CMD = 0x6a;ILI9325_DATA = 0x0000;// Partial Display ControlILI9325_CMD = 0x80;ILI9325_DATA = 0x0000;ILI9325_CMD = 0x81;ILI9325_DATA = 0x0000;ILI9325_CMD = 0x82;ILI9325_DATA = 0x0000;ILI9325_CMD = 0x83;ILI9325_DATA = 0x0000;ILI9325_CMD = 0x84;ILI9325_DATA = 0x0000;ILI9325_CMD = 0x85;ILI9325_DATA = 0x0000;// Panel ControlILI9325_CMD = 0x90;ILI9325_DATA = 0x0010;ILI9325_CMD = 0x92;ILI9325_DATA = 0x0600;// 262K color and display ONILI9325_CMD = 0x07;ILI9325_DATA = 0x0133;
}/* 绘制像素点 */
void ILI9325_SetPixel(uint16_t x, uint16_t y, uint16_t color)
{ILI9325_SetRegion(x, y, x, y);ILI9325_CMD = ILI9325_CMD_MEMORY_WRITE;ILI9325_DATA = color;
}/* 设置绘图位置 */
void ILI9325_SetPos(uint16_t x, uint16_t y)
{ILI9325_CMD = ILI9325_CMD_HORIZONTAL_GRAM_ADDRESS_SET;ILI9325_DATA = x;ILI9325_CMD = ILI9325_CMD_VERTICAL_GRAM_ADDRESS_SET;ILI9325_DATA = y;
}/* 设置显示区域 */
void ILI9325_SetRegion(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1)
{ILI9325_CMD = ILI9325_CMD_HORIZONTAL_ADDRESS_START_POSITION;ILI9325_DATA = x0;ILI9325_CMD = ILI9325_CMD_VERTICAL_ADDRESS_START_POSITION;ILI9325_DATA = y0;ILI9325_CMD = ILI9325_CMD_HORIZONTAL_ADDRESS_END_POSITION;ILI9325_DATA = x1;ILI9325_CMD = ILI9325_CMD_VERTICAL_ADDRESS_END_POSITION;ILI9325_DATA = y1;ILI9325_SetPos(x0, y0);
}

ILI9325.h:

#ifndef _ILI9325_H
#define _ILI9325_H#define ILI9325_CX 240
#define ILI9325_CY 320#define ILI9325_COLOR_BLACK 0x0000
#define ILI9325_COLOR_BLUE 0x001f
#define ILI9325_COLOR_GREEN 0x07e0
#define ILI9325_COLOR_RED 0xf800
#define ILI9325_COLOR_WHITE 0xffff#define ILI9325_CMD (*(volatile uint16_t *)0x60000000)
#define ILI9325_DATA (*(volatile uint16_t *)0x60020000)#define ILI9325_CMD_HORIZONTAL_GRAM_ADDRESS_SET 0x20
#define ILI9325_CMD_VERTICAL_GRAM_ADDRESS_SET 0x21
#define ILI9325_CMD_MEMORY_WRITE 0x22
#define ILI9325_CMD_MEMORY_READ 0x22
#define ILI9325_CMD_HORIZONTAL_ADDRESS_START_POSITION 0x50
#define ILI9325_CMD_HORIZONTAL_ADDRESS_END_POSITION 0x51
#define ILI9325_CMD_VERTICAL_ADDRESS_START_POSITION 0x52
#define ILI9325_CMD_VERTICAL_ADDRESS_END_POSITION 0x53#define ILI9325_RGB888_TO_565(color) ((((color) >> 8) & 0xf800) | (((color) >> 5) & 0x7e0) | (((color) >> 3) & 0x1f))void ILI9325_Clear(uint16_t color);
void ILI9325_DrawImage(const void *image, uint16_t x, uint16_t y, uint16_t width, uint16_t height);
void ILI9325_GetPixelsInRect(void *pixels, uint16_t x, uint16_t y, uint16_t width, uint16_t height);
void ILI9325_Init(void);
void ILI9325_SetPixel(uint16_t x, uint16_t y, uint16_t color);
void ILI9325_SetPos(uint16_t x, uint16_t y);
void ILI9325_SetRegion(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1);#endif

XPT2046.c:

#include <stdio.h>
#include <stm32f4xx.h>
#include "XPT2046.h"#define SCREEN_WIDTH 240
#define SCREEN_HEIGHT 320
#define TOUCH_LEFT 385
#define TOUCH_RIGHT 3439
#define TOUCH_TOP 575
#define TOUCH_BOTTOM 3586#define CS_0 HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_RESET)
#define CS_1 HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_SET)SPI_HandleTypeDef hspi1;int XPT2046_GetITStatus(void)
{return HAL_GPIO_ReadPin(GPIOC, GPIO_PIN_4) == GPIO_PIN_RESET;
}void XPT2046_Init(void)
{GPIO_InitTypeDef gpio;__HAL_RCC_GPIOA_CLK_ENABLE();__HAL_RCC_GPIOC_CLK_ENABLE();__HAL_RCC_SPI1_CLK_ENABLE();CS_1;gpio.Mode = GPIO_MODE_OUTPUT_PP;gpio.Pin = GPIO_PIN_4;gpio.Pull = GPIO_NOPULL;gpio.Speed = GPIO_SPEED_FREQ_HIGH;HAL_GPIO_Init(GPIOA, &gpio);gpio.Alternate = GPIO_AF5_SPI2;gpio.Mode = GPIO_MODE_AF_PP;gpio.Pin = GPIO_PIN_5 | GPIO_PIN_6 | GPIO_PIN_7;gpio.Pull = GPIO_NOPULL;gpio.Speed = GPIO_SPEED_FREQ_HIGH;HAL_GPIO_Init(GPIOA, &gpio);gpio.Mode = GPIO_MODE_INPUT;gpio.Pin = GPIO_PIN_4;gpio.Pull = GPIO_PULLUP;HAL_GPIO_Init(GPIOC, &gpio);hspi1.Instance = SPI1;hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_256;hspi1.Init.Mode = SPI_MODE_MASTER;hspi1.Init.NSS = SPI_NSS_SOFT;HAL_SPI_Init(&hspi1);
}uint16_t XPT2046_Read(uint8_t cmd)
{uint8_t data[3] = {cmd};CS_0;HAL_SPI_TransmitReceive(&hspi1, data, data, sizeof(data), HAL_MAX_DELAY);CS_1;return ((data[1] << 5) | (data[2] >> 3)) & 0xfff;
}void XPT2046_ReadPosition(int *x, int *y)
{float k, b;int i;uint32_t value_x = 0, value_y = 0;for (i = 0; i < 50; i++){value_x += XPT2046_Read(XPT2046_READX);value_y += XPT2046_Read(XPT2046_READY);}value_x /= i;value_y /= i;printf("value_x=%u, value_y=%u\n", value_x, value_y);k = (float)SCREEN_WIDTH / (TOUCH_RIGHT - TOUCH_LEFT);b = -k * TOUCH_LEFT;*x = k * value_x + b;if (*x < 0)*x = 0;else if (*x > SCREEN_WIDTH - 1)*x = SCREEN_WIDTH - 1;k = (float)SCREEN_HEIGHT / (TOUCH_BOTTOM - TOUCH_TOP);b = -k * TOUCH_TOP;*y = k * value_y + b;if (*y < 0)*y = 0;else if (*y > SCREEN_HEIGHT - 1)*y = SCREEN_HEIGHT - 1;*y = (SCREEN_HEIGHT - 1) - *y;
}

XPT2046.h:

#ifndef _XPT2046_H
#define _XPT2046_H#define XPT2046_READX 0x90
#define XPT2046_READY 0xd0int XPT2046_GetITStatus(void);
void XPT2046_Init(void);
uint16_t XPT2046_Read(uint8_t cmd);
void XPT2046_ReadPosition(int *x, int *y);#endif

【程序运行结果】

STM32F407VE FSMC ILI9325
SystemCoreClock=168000000
LCD ID: 0x9325
Display error! err/count=101/1240
value_x=762, value_y=3218
(29,39)
value_x=766, value_y=3219
(29,39)
value_x=751, value_y=3224
(28,38)
value_x=764, value_y=3222
(29,38)
value_x=757, value_y=3224
(29,38)
value_x=760, value_y=3225
(29,38)
value_x=759, value_y=3225
(29,38)
value_x=750, value_y=3223
(28,38)
value_x=756, value_y=3222
(29,38)
value_x=754, value_y=3221
(28,38)
value_x=835, value_y=3171
(35,44)
value_x=1650, value_y=1172
(99,256)
value_x=1145, value_y=1545
(59,216)
value_x=1168, value_y=1548
(61,216)
value_x=1247, value_y=1585
(67,212)
value_x=1339, value_y=1620
(74,208)
value_x=1407, value_y=1643
(80,206)
value_x=1474, value_y=1668
(85,203)
value_x=1533, value_y=1712
(90,199)
value_x=1581, value_y=1740
(93,196)
value_x=1611, value_y=1769
(96,193)
value_x=1653, value_y=1785
(99,191)
value_x=1693, value_y=1816
(102,188)
value_x=1714, value_y=1835
(104,186)
value_x=1786, value_y=1882
(110,181)
value_x=1847, value_y=1915
(114,177)
value_x=1865, value_y=1937
(116,175)
value_x=1919, value_y=1971
(120,171)
value_x=1946, value_y=1994
(122,169)
value_x=1942, value_y=2005
(122,168)
value_x=1967, value_y=2023
(124,166)
value_x=2009, value_y=2044
(127,163)
value_x=2013, value_y=2053
(127,162)
value_x=2009, value_y=2055
(127,162)
value_x=1998, value_y=2053
(126,162)
value_x=2013, value_y=2057
(127,162)
value_x=2017, value_y=2062
(128,161)
value_x=2017, value_y=2069
(128,161)
value_x=2056, value_y=2019
(131,166)
value_x=2102, value_y=2120
(134,155)
value_x=2095, value_y=2138
(134,153)
value_x=2163, value_y=2183
(139,149)
value_x=2129, value_y=2208
(137,146)
value_x=2137, value_y=2221
(137,145)
value_x=2135, value_y=2243
(137,142)
value_x=2171, value_y=2269
(140,139)
value_x=2180, value_y=2278
(141,139)
value_x=2197, value_y=2283
(142,138)
value_x=2181, value_y=2288
(141,137)
value_x=2188, value_y=2292
(141,137)
value_x=2194, value_y=2304
(142,136)
value_x=2192, value_y=2307
(142,135)
value_x=2189, value_y=2308
(141,135)
value_x=2197, value_y=2310
(142,135)
value_x=2187, value_y=2314
(141,135)
value_x=2212, value_y=2319
(143,134)
value_x=2223, value_y=2328
(144,133)
value_x=2249, value_y=2351
(146,131)
value_x=2250, value_y=2362
(146,130)
value_x=2252, value_y=2380
(146,128)
value_x=2253, value_y=2408
(146,125)
value_x=2243, value_y=2424
(146,123)
value_x=2265, value_y=2440
(147,121)
value_x=2260, value_y=2452
(147,120)
value_x=2279, value_y=2455
(148,120)
value_x=2276, value_y=2464
(148,119)
value_x=2287, value_y=2468
(149,118)
value_x=2296, value_y=2486
(150,116)
value_x=2324, value_y=2504
(152,114)
value_x=2337, value_y=2519
(153,113)
value_x=2345, value_y=2522
(154,113)
value_x=2335, value_y=2530
(153,112)
value_x=2330, value_y=2530
(152,112)
value_x=2348, value_y=2538
(154,111)
value_x=2347, value_y=2543
(154,110)
value_x=2673, value_y=1826
(179,187)
value_x=2426, value_y=2584
(160,106)
value_x=2375, value_y=2623
(156,102)
value_x=2364, value_y=2650
(155,99)
value_x=2408, value_y=2685
(158,95)
value_x=2428, value_y=2700
(160,94)
value_x=2424, value_y=2708
(160,93)
value_x=2411, value_y=2718
(159,92)
value_x=2509, value_y=2328
(166,133)
value_x=2740, value_y=1739
(185,196)
value_x=3835, value_y=24
(239,319)
value_x=2498, value_y=2752
(166,88)
value_x=2452, value_y=2774
(162,86)
value_x=2449, value_y=2797
(162,83)
value_x=2441, value_y=2806
(161,82)
value_x=3617, value_y=378
(239,319)
value_x=2509, value_y=2848
(166,78)
value_x=2507, value_y=2850
(166,78)
value_x=2509, value_y=2840
(166,79)
value_x=2504, value_y=2852
(166,78)
value_x=3156, value_y=2087
(217,159)
value_x=2969, value_y=3197
(203,41)
value_x=2990, value_y=3204
(204,40)
value_x=2979, value_y=3205
(203,40)
value_x=3050, value_y=3251
(209,35)
value_x=3053, value_y=3252
(209,35)
value_x=3052, value_y=3254
(209,35)
value_x=3183, value_y=2535
(219,111)
value_x=3136, value_y=3315
(216,28)
value_x=3134, value_y=3327
(216,27)
value_x=3571, value_y=1424
(239,229)
value_x=3183, value_y=3371
(219,22)
value_x=3208, value_y=3376
(221,22)
value_x=3216, value_y=3381
(222,21)
value_x=3196, value_y=3387
(220,21)
value_x=3217, value_y=3388
(222,21)
value_x=3214, value_y=3392
(222,20)
value_x=3210, value_y=3395
(222,20)
value_x=3203, value_y=3399
(221,19)
value_x=3205, value_y=3402
(221,19)
value_x=3211, value_y=3417
(222,17)
value_x=3273, value_y=3444
(226,15)
value_x=3279, value_y=3463
(227,13)
value_x=3306, value_y=3489
(229,10)
value_x=3312, value_y=3521
(230,6)
value_x=3326, value_y=3529
(231,6)
value_x=3322, value_y=3534
(230,5)
value_x=3325, value_y=3533
(231,5)
value_x=3320, value_y=3539
(230,4)
value_x=3320, value_y=3544
(230,4)
value_x=3327, value_y=3554
(231,3)
value_x=3338, value_y=3579
(232,0)
value_x=3381, value_y=3608
(235,0)
value_x=3391, value_y=3613
(236,0)
value_x=3398, value_y=3617
(236,0)
value_x=3403, value_y=3621
(237,0)
value_x=3417, value_y=3631
(238,0)
value_x=3441, value_y=3651
(239,0)
value_x=3458, value_y=3669
(239,0)
value_x=3466, value_y=3675
(239,0)
value_x=3471, value_y=3683
(239,0)
value_x=3479, value_y=3686
(239,0)
value_x=3486, value_y=3690
(239,0)
value_x=3485, value_y=3690
(239,0)
value_x=3479, value_y=3694
(239,0)
value_x=3486, value_y=3696
(239,0)
value_x=3490, value_y=3700
(239,0)
value_x=3492, value_y=3710
(239,0)
value_x=3498, value_y=3714
(239,0)
value_x=3504, value_y=3349
(239,25)
value_x=3565, value_y=643
(239,312)
value_x=3566, value_y=644
(239,312)
value_x=3703, value_y=386
(239,319)
value_x=3478, value_y=567
(239,319)
value_x=3423, value_y=568
(238,319)
value_x=3391, value_y=577
(236,319)
value_x=3399, value_y=578
(236,319)
value_x=3399, value_y=578
(236,319)
value_x=3395, value_y=579
(236,319)
value_x=3401, value_y=577
(237,319)
value_x=3403, value_y=579
(237,319)
value_x=3394, value_y=575
(236,319)
value_x=3367, value_y=568
(234,319)
value_x=3593, value_y=3790
(239,0)
value_x=3756, value_y=303
(239,319)
value_x=3256, value_y=2378
(225,128)
value_x=3381, value_y=3370
(235,22)
value_x=3366, value_y=3374
(234,22)
value_x=3372, value_y=3375
(234,22)
value_x=3372, value_y=3373
(234,22)
value_x=3386, value_y=3376
(235,22)
value_x=3257, value_y=2903
(225,72)
value_x=3871, value_y=48
(239,319)
value_x=3578, value_y=3702
(239,0)
value_x=3558, value_y=3701
(239,0)
value_x=3561, value_y=3686
(239,0)
value_x=3558, value_y=3690
(239,0)
value_x=3568, value_y=3699
(239,0)
value_x=3565, value_y=3695
(239,0)
value_x=3588, value_y=3704
(239,0)
value_x=3594, value_y=3712
(239,0)
value_x=3592, value_y=3705
(239,0)
value_x=3598, value_y=3709
(239,0)
value_x=3598, value_y=3714
(239,0)
value_x=3593, value_y=3720
(239,0)
value_x=3602, value_y=3720
(239,0)
value_x=3587, value_y=3723
(239,0)
value_x=3595, value_y=3725
(239,0)
value_x=3600, value_y=3724
(239,0)
value_x=3601, value_y=3726
(239,0)
value_x=3601, value_y=3726
(239,0)
value_x=3595, value_y=3728
(239,0)
value_x=3601, value_y=3728
(239,0)
value_x=3598, value_y=3728
(239,0)
value_x=3594, value_y=3728
(239,0)
value_x=3598, value_y=3729
(239,0)
value_x=3597, value_y=3728
(239,0)
value_x=3597, value_y=3727
(239,0)
value_x=3597, value_y=3727
(239,0)
value_x=3590, value_y=3726
(239,0)
value_x=3589, value_y=3726
(239,0)
value_x=3587, value_y=3724
(239,0)
value_x=3593, value_y=3724
(239,0)
value_x=3580, value_y=3724
(239,0)
value_x=3595, value_y=3724
(239,0)
value_x=3598, value_y=3724
(239,0)
value_x=3596, value_y=3722
(239,0)
value_x=3590, value_y=3724
(239,0)
value_x=3587, value_y=3724
(239,0)
value_x=3581, value_y=3723
(239,0)
value_x=3590, value_y=3724
(239,0)
value_x=3574, value_y=3723
(239,0)
value_x=3573, value_y=3722
(239,0)
value_x=3571, value_y=3731
(239,0)
value_x=3566, value_y=3737
(239,0)
value_x=3572, value_y=3738
(239,0)
value_x=3580, value_y=3741
(239,0)
value_x=3578, value_y=3746
(239,0)
value_x=3583, value_y=3749
(239,0)
value_x=3575, value_y=3751
(239,0)
value_x=3581, value_y=3754
(239,0)
value_x=3573, value_y=3756
(239,0)
value_x=3574, value_y=3755
(239,0)
value_x=3584, value_y=3753
(239,0)
value_x=3583, value_y=3753
(239,0)
value_x=3582, value_y=3751
(239,0)
value_x=3587, value_y=3754
(239,0)
value_x=3653, value_y=3742
(239,0)
value_x=3667, value_y=3738
(239,0)
value_x=3647, value_y=3737
(239,0)
value_x=3658, value_y=3737
(239,0)
value_x=3656, value_y=3734
(239,0)
value_x=3659, value_y=3732
(239,0)
value_x=3648, value_y=3730
(239,0)
value_x=3647, value_y=3727
(239,0)
value_x=3650, value_y=3726
(239,0)
value_x=3649, value_y=3724
(239,0)
value_x=3649, value_y=3724
(239,0)
value_x=3650, value_y=3723
(239,0)
value_x=3650, value_y=3723
(239,0)
value_x=3645, value_y=3723
(239,0)
value_x=3645, value_y=3724
(239,0)
value_x=3649, value_y=3722
(239,0)
value_x=3655, value_y=3724
(239,0)
value_x=3638, value_y=3723
(239,0)
value_x=3646, value_y=3723
(239,0)
value_x=3647, value_y=3724
(239,0)
value_x=3641, value_y=3725
(239,0)
value_x=3655, value_y=3728
(239,0)
value_x=3647, value_y=3729
(239,0)
value_x=3649, value_y=3729
(239,0)
value_x=3655, value_y=3732
(239,0)
value_x=3654, value_y=3729
(239,0)
value_x=3647, value_y=3730
(239,0)
value_x=3652, value_y=3730
(239,0)
value_x=3640, value_y=3729
(239,0)
value_x=3642, value_y=3728
(239,0)
value_x=3649, value_y=3728
(239,0)
value_x=3647, value_y=3727
(239,0)
value_x=3642, value_y=3726
(239,0)
value_x=3631, value_y=3725
(239,0)
value_x=3647, value_y=3723
(239,0)
value_x=3644, value_y=3723
(239,0)
value_x=3637, value_y=3721
(239,0)
value_x=3625, value_y=3442
(239,15)
value_x=3654, value_y=461
(239,319)
value_x=3650, value_y=457
(239,319)
value_x=3659, value_y=458
(239,319)
value_x=3650, value_y=457
(239,319)
value_x=3642, value_y=456
(239,319)
value_x=3658, value_y=458
(239,319)
value_x=3656, value_y=460
(239,319)
value_x=3663, value_y=466
(239,319)
value_x=3664, value_y=471
(239,319)
value_x=3671, value_y=469
(239,319)
value_x=3671, value_y=470
(239,319)
value_x=3677, value_y=465
(239,319)
value_x=3688, value_y=464
(239,319)
value_x=3670, value_y=460
(239,319)
value_x=3685, value_y=461
(239,319)
value_x=3689, value_y=463
(239,319)
value_x=3687, value_y=464
(239,319)
value_x=3697, value_y=465
(239,319)
value_x=3679, value_y=463
(239,319)
value_x=3683, value_y=465
(239,319)
value_x=3685, value_y=464
(239,319)
value_x=3684, value_y=465
(239,319)
value_x=3684, value_y=467
(239,319)
value_x=3677, value_y=463
(239,319)
value_x=3672, value_y=463
(239,319)
value_x=3682, value_y=461
(239,319)
value_x=3670, value_y=458
(239,319)
value_x=3682, value_y=458
(239,319)
value_x=3679, value_y=457
(239,319)
value_x=3685, value_y=455
(239,319)
value_x=3691, value_y=457
(239,319)
value_x=3673, value_y=458
(239,319)
value_x=3674, value_y=458
(239,319)
value_x=3681, value_y=460
(239,319)
value_x=3678, value_y=461
(239,319)
value_x=3692, value_y=461
(239,319)
value_x=3684, value_y=459
(239,319)
value_x=3690, value_y=460
(239,319)
value_x=3689, value_y=461
(239,319)
value_x=3678, value_y=461
(239,319)
value_x=3682, value_y=461
(239,319)
value_x=3684, value_y=461
(239,319)
value_x=3684, value_y=463
(239,319)
value_x=3692, value_y=463
(239,319)
value_x=3688, value_y=461
(239,319)
value_x=3686, value_y=460
(239,319)
value_x=3700, value_y=457
(239,319)
value_x=3681, value_y=457
(239,319)
value_x=3688, value_y=456
(239,319)
value_x=3702, value_y=455
(239,319)
value_x=3697, value_y=454
(239,319)
value_x=3696, value_y=454
(239,319)
value_x=3702, value_y=453
(239,319)
value_x=3697, value_y=453
(239,319)
value_x=3702, value_y=452
(239,319)
value_x=3698, value_y=450
(239,319)
value_x=3692, value_y=451
(239,319)
value_x=3696, value_y=452
(239,319)
value_x=3698, value_y=453
(239,319)
value_x=3703, value_y=453
(239,319)
value_x=3680, value_y=453
(239,319)
value_x=3694, value_y=453
(239,319)
value_x=3697, value_y=452
(239,319)
value_x=3697, value_y=452
(239,319)
value_x=3697, value_y=452
(239,319)
value_x=3700, value_y=450
(239,319)
value_x=3692, value_y=451
(239,319)
value_x=3696, value_y=449
(239,319)
value_x=3691, value_y=449
(239,319)
value_x=3687, value_y=449
(239,319)
value_x=3691, value_y=448
(239,319)
value_x=3696, value_y=447
(239,319)
value_x=3696, value_y=446
(239,319)
value_x=3700, value_y=445
(239,319)
value_x=3694, value_y=445
(239,319)
value_x=3691, value_y=444
(239,319)
value_x=3687, value_y=444
(239,319)
value_x=3692, value_y=443
(239,319)
value_x=3696, value_y=443
(239,319)
value_x=3697, value_y=445
(239,319)
value_x=3697, value_y=444
(239,319)
value_x=3697, value_y=444
(239,319)
value_x=3702, value_y=444
(239,319)
value_x=3693, value_y=445
(239,319)
value_x=3693, value_y=445
(239,319)
value_x=3708, value_y=446
(239,319)
value_x=3712, value_y=445
(239,319)
value_x=3702, value_y=445
(239,319)
value_x=3695, value_y=445
(239,319)
value_x=3704, value_y=445
(239,319)
value_x=3705, value_y=444
(239,319)
value_x=3691, value_y=445
(239,319)
value_x=3698, value_y=446
(239,319)
value_x=3693, value_y=443
(239,319)
value_x=3701, value_y=445
(239,319)
value_x=3692, value_y=446
(239,319)
value_x=3695, value_y=445
(239,319)
value_x=3708, value_y=444
(239,319)
value_x=3691, value_y=441
(239,319)
value_x=3685, value_y=441
(239,319)
value_x=3711, value_y=438
(239,319)
value_x=3702, value_y=435
(239,319)
value_x=3693, value_y=436
(239,319)
value_x=3700, value_y=439
(239,319)
value_x=3705, value_y=440
(239,319)
value_x=3698, value_y=445
(239,319)
value_x=3697, value_y=452
(239,319)
value_x=3678, value_y=464
(239,319)
value_x=3660, value_y=466
(239,319)
value_x=3669, value_y=463
(239,319)
value_x=3656, value_y=460
(239,319)
value_x=3638, value_y=458
(239,319)
value_x=3649, value_y=457
(239,319)
value_x=3641, value_y=458
(239,319)
value_x=3864, value_y=26
(239,319)
value_x=3588, value_y=501
(239,319)
value_x=3592, value_y=502
(239,319)
value_x=3632, value_y=446
(239,319)
value_x=3610, value_y=448
(239,319)
value_x=3635, value_y=451
(239,319)
value_x=3667, value_y=542
(239,319)
value_x=3680, value_y=535
(239,319)
value_x=3682, value_y=523
(239,319)
value_x=3687, value_y=519
(239,319)
value_x=3694, value_y=514
(239,319)
value_x=3677, value_y=512
(239,319)
value_x=3683, value_y=509
(239,319)
value_x=3690, value_y=506
(239,319)
value_x=3703, value_y=505
(239,319)
value_x=3701, value_y=504
(239,319)
value_x=3708, value_y=504
(239,319)
value_x=3698, value_y=503
(239,319)
value_x=3699, value_y=504
(239,319)
value_x=3697, value_y=501
(239,319)
value_x=3686, value_y=499
(239,319)
value_x=3682, value_y=498
(239,319)
value_x=3686, value_y=498
(239,319)
value_x=3678, value_y=499
(239,319)
value_x=3678, value_y=500
(239,319)
value_x=3679, value_y=503
(239,319)
value_x=3681, value_y=509
(239,319)
value_x=3676, value_y=508
(239,319)
value_x=3686, value_y=509
(239,319)
value_x=3675, value_y=505
(239,319)
value_x=3676, value_y=503
(239,319)
value_x=3676, value_y=498
(239,319)
value_x=3662, value_y=496
(239,319)
value_x=3672, value_y=497
(239,319)
value_x=3657, value_y=495
(239,319)
value_x=3665, value_y=499
(239,319)
value_x=3674, value_y=505
(239,319)
value_x=3667, value_y=510
(239,319)
value_x=3878, value_y=9
(239,319)
value_x=3709, value_y=273
(239,319)
value_x=2479, value_y=1867
(164,182)
value_x=2482, value_y=1882
(164,181)
value_x=2468, value_y=1890
(163,180)
value_x=2473, value_y=1895
(164,179)
value_x=2470, value_y=1895
(163,179)
value_x=2464, value_y=1894
(163,179)
value_x=2473, value_y=1892
(164,180)
value_x=2472, value_y=1888
(164,180)
value_x=2458, value_y=1883
(162,180)
value_x=2406, value_y=1860
(158,183)
value_x=2398, value_y=1856
(158,183)
value_x=2389, value_y=1856
(157,183)
value_x=2382, value_y=1852
(156,184)
value_x=2393, value_y=1852
(157,184)
value_x=2387, value_y=1850
(157,184)
value_x=2381, value_y=1853
(156,184)
value_x=2390, value_y=1852
(157,184)
value_x=2383, value_y=1852
(157,184)
value_x=2388, value_y=1853
(157,184)
value_x=2377, value_y=1851
(156,184)
value_x=2399, value_y=1853
(158,184)
value_x=2397, value_y=1855
(158,183)
value_x=2390, value_y=1856
(157,183)
value_x=2395, value_y=1858
(157,183)
value_x=2395, value_y=1860
(157,183)
value_x=2408, value_y=1865
(158,182)
value_x=3653, value_y=235
(239,319)
value_x=2380, value_y=1867
(156,182)
value_x=2384, value_y=1865
(157,182)
value_x=2373, value_y=1863
(156,183)
value_x=2369, value_y=1863
(155,183)
value_x=2369, value_y=1862
(155,183)
value_x=1430, value_y=1385
(82,233)
value_x=1439, value_y=1380
(82,234)
value_x=1468, value_y=1383
(85,234)
value_x=1485, value_y=1395
(86,232)
value_x=1501, value_y=1405
(87,231)
value_x=1599, value_y=1381
(95,234)
value_x=1630, value_y=1389
(97,233)
value_x=1687, value_y=1402
(102,232)
value_x=1755, value_y=1394
(107,232)
value_x=1844, value_y=1417
(114,230)
value_x=1954, value_y=1418
(123,230)
value_x=2052, value_y=1436
(131,228)
value_x=2147, value_y=1447
(138,227)
value_x=2224, value_y=1464
(144,225)
value_x=2297, value_y=1476
(150,224)
value_x=2368, value_y=1489
(155,222)
value_x=2451, value_y=1505
(162,221)
value_x=2527, value_y=1516
(168,219)
value_x=2617, value_y=1540
(175,217)
value_x=2700, value_y=1556
(181,215)
value_x=2770, value_y=1572
(187,214)
value_x=2829, value_y=1589
(192,212)
value_x=2869, value_y=1608
(195,210)
value_x=2909, value_y=1619
(198,209)
value_x=2959, value_y=1641
(202,206)
value_x=3005, value_y=1621
(205,208)
value_x=3098, value_y=1655
(213,205)
value_x=2776, value_y=673
(187,309)
value_x=1333, value_y=1754
(74,194)
value_x=1346, value_y=1779
(75,192)
value_x=1364, value_y=1782
(76,191)
value_x=1389, value_y=1797
(78,190)
value_x=1498, value_y=1804
(87,189)
value_x=1631, value_y=1844
(97,185)
value_x=1825, value_y=1890
(113,180)
value_x=2032, value_y=1937
(129,175)
value_x=2187, value_y=1991
(141,169)
value_x=2319, value_y=2024
(151,166)
value_x=2407, value_y=2065
(158,161)
value_x=2513, value_y=2090
(167,158)
value_x=2596, value_y=2127
(173,155)
value_x=2679, value_y=2163
(180,151)
value_x=3595, value_y=433
(239,319)

【程序】STM32F407VE单片机通过FSMC驱动Ilitek ILI9325液晶屏以及XPT2046触控芯片相关推荐

  1. c语言52单片机液晶屏显示,[手把手教你学51单片机C语言教程]22 LCD12864液晶屏显示.pdf...

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbspC/C++资料 [手把手教你学51单片机C语言教程]22 LCD ...

  2. 简单明了操作——ESP8266 NodeMCU驱动TFT LCD液晶屏(制作透明小电视前奏)

    简单明了操作--ESP8266 NodeMCU驱动TFT LCD液晶屏(制作透明小电视前奏) 前言 准备材料 esp8266 NodeMCU(串口WiFi模块) 1.44inch SPI Arduin ...

  3. 【STemWin】STM32F103VE单片机用FSMC驱动ILI9341彩色触摸屏(触控芯片XPT2046),并裸机移植STemWin图形库(采用LCDConf_FlexColor.c模板)

    本程序采用的是STM32F103VE单片机,外部晶振的大小为8MHz,使用HAL库编写程序. 程序下载地址:https://pan.baidu.com/s/1-Q4LX3DkMjDcLod1m3r1o ...

  4. ht1621b和单片机电平匹配_HT1621B驱动段码液晶屏参考程序——晶拓液晶屏

    (1)    段码屏的驱动程序跟数码管的静态驱动程序一样,只要我们弄懂了怎样显示一个基本单位,根据此基本单位编写一个字库表,然后   用与(&)和或(|)这两种位运算符就可以随心所欲编写我们要 ...

  5. 【C51单片机学习笔记----DS18B20温度传感器LCD1602液晶屏直流电机调速与呼吸灯AD模数转换红外外部中断】

    文章目录 一.DS18B20温度传感器 1.DS18B20温度传感器连接原理图 2.DS18B20温度传感器单总线通信时序 3.DS18B20温度传感器代码模块 二.LCD1602液晶屏 1.LCD1 ...

  6. Linux 驱动开发 六十六:多点触控(MT)协议

    文档路径:Documentation\input\multi-touch-protocol.txt. 一.介绍 为了充分利用新的多点触摸和多用户设备的功能,需要一种从多个触摸点(即与设备表面直接接触的 ...

  7. 如何驱动段码液晶屏?

    日常生活中我见的较多的就是段码液晶屏了,如遥控器.冰箱.电子体温计.设备上的显示器等等,段码屏应用如此广泛主要是它即有着普通数码管的特征,又有着点阵液晶屏的特征:有固定的图形,不但成本低而且又美观.那 ...

  8. MSP430驱动诺基亚5110液晶屏完整程序

    /************************************************ main()主函数 试验名称:test_nokia5110 试验功能:测试nokia5110 LCD ...

  9. 微信小程序~触摸相关事件(拖拽操作、手势识别、多点触控)

    touchstart 手指触摸动作开始 touchmove 手指触摸后移动 touchcancel 手指触摸动作被打断,如来电提醒,弹窗 touchend 手指触摸动作结束 拖拽操作案例1:(注意按钮 ...

最新文章

  1. 一些关于Rust在2019年的思考
  2. 二维稳态热传导 代码实现_博世壁挂炉发生故障代码及处理办法
  3. statistics_level参数的介绍
  4. Stream流中的常用方法_map
  5. SQL Server 跨库查询
  6. jquery-文档操作
  7. 知识图谱开源社区_您需要了解的关于开源社区中的倦怠的知识
  8. c统计多线程总时间_SQL Server处理器性能指标–第2部分–处理器:%用户时间,处理器:%特权时间,总时间和线程指标
  9. Google 搜索老矣,尚能饭否?
  10. IDEA中解决Edit Configurations中没有tomcat Server选项的问题(附配置Tomcat)
  11. python与pycharm的作用_JSON 在pycharm 与python 三者有什么关系?JSON有什么作用?
  12. Qt信号槽机制与优势与不足
  13. 进程之间的通信方式有哪些?
  14. Android P使用pm install安装apk报错
  15. [python]学习过程小例子
  16. 常微分方程-差分方程
  17. 谷歌无法更新至最新版本问题
  18. ISIS 防环机制分析
  19. 基于机智云的嵌入式系统应用开发—空调远程智能控制系统
  20. 周期为“2L“的函数展开为傅里叶级数

热门文章

  1. 期末作业成品代码——威海影视(1页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源码
  2. python 贪吃蛇大作战_Python 实现 贪吃蛇大作战 代码分享
  3. java微信发送验证码,详解如何使用微信小程序云函数发送短信验证码
  4. QT 调用 百度翻译API 写的在线翻译程序
  5. 【优化】梯度下降 收敛性 证明
  6. 一文看懂:零代码平台是什么?怎么选?
  7. [LeetCode] Merge k Sorted Lists 合并k个有序链表
  8. oracle中触发器的创建,Oracle触发器创建及其功能
  9. 园区网架构设计 / 升级--3--内外网络优化配置
  10. 黄飞130702010037第二次作业