如题,测试了软硬件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, 下载次数: 8)
,其中lcd.c/h是源码,fontlib.h是字库。
|