但既然ST官方的屏是SPI接口的,但为什么在官方驱动中的lcd.h中,定义了如下的控制线?
/* LCD Control pins */ #define CtrlPin_NCS GPIO_Pin_2 /* PB.02 */ #define CtrlPin_RS GPIO_Pin_7 /* PD.07 */ #define CtrlPin_NWR GPIO_Pin_15 /* PD.15 */
这些应该是并行驱动中用到的吧?
另外,在lcd.c中,既然是SPI接口的屏幕,为什么要用这种很奇怪的写法:
void LCD_WriteReg(u8 LCD_Reg, u8 LCD_RegValue) { u16 tmp = 0;
LCD_CtrlLinesWrite(GPIOD, CtrlPin_NWR, Bit_RESET); LCD_CtrlLinesWrite(GPIOD, CtrlPin_RS, Bit_RESET); LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_RESET);
tmp = LCD_Reg << 8; tmp |= LCD_RegValue;
SPI_SendData(SPI2, tmp); while(SPI_GetFlagStatus(SPI2, SPI_FLAG_TXE) == RESET) { }
LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET); }
既然是SPI,怎么又用到RS,WR ?
|