本帖最后由 ddllxxrr 于 2019-11-1 21:21 编辑
我这个屏为我立下了汗马功劳,我基本上一用屏别的什么占几十根线的屏基本不用。谁爱用谁用,等到把线连好了,我的岁月差不多走完了。
这个是230*240的淘宝有的是,一大把。
先说说我的点屏经过。
首先,屏背景灯一根线连到VCC上(3.3V)这样我就省了一根线(很扣)。
这样我就用了六根线,其实还可省一根,我也不想太狗逼。就连上了。
我觉得关键是定义好管脚。最好不用C脚,因为它连着SWD,上一贴我就把板子搞坏,又起死回生地搞定。
我只是加了两个文件,而这两个文件是屏的资料里提供的。
一个LCD.h一个LCD.c
我加的管脚定义如下:
#define PBout(n) BIT_ADDR(GPIOB_ODR_ADDR, n)
#define PBin(n) BIT_ADDR(GPIOB_IDR_ADDR, n)
#define PAout(n) BIT_ADDR(GPIOA_ODR_ADDR, n)
#define PAin(n) BIT_ADDR(GPIOA_IDR_ADDR, n)
#define LCD_RS_PIN GPIO_PA0 //数据/命令切换
#define LCD_SDI_PIN GPIO_PA1 //SPI写
#define LCD_SDO_PIN GPIO_PA2 //SPI读
#define LCD_CS_PIN GPIO_PA3 //片选
#define LCD_CLK_PIN GPIO_PA4 //SPI时钟
#define LCD_RESET_PIN GPIO_PA5 //复位
#define LCD_RS (PAout(0))
#define LCD_SDI (PAout(1))
#define LCD_SDO (PAout(2))
#define LCD_CS (PAout(3))
#define LCD_CLK (PAout(4))
#define LCD_RESET (PAout(5))
而main中则如下:
LCD_Init();
while(1)
{
LCD_Clear(RED);mdelay(1000); mdelay(1000);
LCD_Clear(GREEN);mdelay(1000); mdelay(1000);
LCD_Clear(BLUE);mdelay(1000); mdelay(1000);
}
执行效果如下:
|