如题,测试了软硬件SPI,本文使用SPI驱动1.8吋LCD,LCD驱动芯片为[size=1em]ST7735。
硬件连接:
/*
GND GND
3.3V VCC
PB13 SCL
PB15 SDA
PA5 CS(片选)
PA0 ERS(复位)
PA1 DC(命令数据选择)
PA4 BL(背光)
*/
使用软件SPI驱动比较顺利,使用硬件SPI的时候出现了点小插曲,需要在操作CS引脚的前后加入延时,负责不能LCD不能正常显示:
void LCD_Writ_Bus(u8 dat)
{
LCD_CS_LOW();
#if SOFTWARE_SPI_ENABLE
u8 i;
for(i=0;i<8;i++)
{
LCD_SCLK_LOW();
if(dat&0x80)
{
LCD_MOSI_HIGH();
}
else
{
LCD_MOSI_LOW();
}
LCD_SCLK_HIGH();
dat<<=1;
}
#else
delay_us(2);
spi_i2s_data_transmit(SPI2, dat);
while(spi_i2s_flag_get(SPI2, SPI_I2S_TDBE_FLAG) == RESET) {};
delay_us(2);
#endif
LCD_CS_HIGH();
}
本驱动移植了多个MCU,鉴于篇幅太长,直接上传相关代码文件:
lcd.rar
(49.64 KB)
,其中lcd.c/h是源码,fontlib.h是字库。
|