我们板载是带了一块屏幕的,这款屏幕使用ST7789v3芯片作为驱动,直接搜素型号不太行。
直接这样搜索,我们就能找到类似的屏幕了,然后中景园也是给了资料案例,我们进行移植。
大致修改就是修改引脚,由于他们使用的是模拟SPI,所以直接对应上管脚就能点屏,但是速度太慢了,所以我增加了SPI点屏方式。
稍微修改下就能兼容了。
void LCD_Writ_Bus(u8 dat)
{
if(!LCD_HW_SPI)
{
u8 i;
LCD_CS_Clr();
for(i=0;i<8;i++)
{
LCD_SCLK_Clr();
if(dat&0x80)
{
LCD_MOSI_Set();
}
else
{
LCD_MOSI_Clr();
}
LCD_SCLK_Set();
dat<<=1;
}
LCD_CS_Set();
}
else
{
uint32_t counter, RX_Flag;
uint8_t *rdata;
LCD_CS_Clr();
FL_SPI_I2S_WriteTXBuff(SPI0, dat); /* 发送数据 */
counter = 0;
do
{
RX_Flag = FL_SPI_I2S_IsActiveFlag_RXBuffFull(SPI0);
counter++;
} while((counter != 0xFFFFFFFFU) && (RX_Flag == 0U)); /* 等待接收标志置起 */
if(RX_Flag == 0x01)
{
*rdata = (uint8_t)(FL_SPI_I2S_ReadRXBuff(SPI0) & 0xFFU); /* 读取接收数据,同时可自动清除接收标志 */
rdata++;
}
LCD_CS_Set();
}
}
上面就是发送代码。
硬件SPI速度要快很多。