SPI有分3线和4线的,时序类似,如用IO模拟的话,因速度比较慢,除非是数据量不多的如笔段型液晶屏,否则显示更新会很慢,特别是彩屏TFT的更新; 不过如中间加个如瑞佑的RA8889这样的液晶屏控制器,也可用SPI做出彩屏图片随时切换的好效果,因为这只需要用SPI来传指令,显示数据可全由控制IC(RA8889)来处理。
3线SPI用IO模拟的处理可参考如下:
void LCD_CmdWrite(unsigned char Addr, unsigned char Data)
{
cs = 0;
sck = 0;
sda = 0; //RW=0, write
sck = 1;
sck = 0;
sda = 0; //RS=0
sck = 1;
LCD_SendData(Addr);
LCD_SendData(Data);
cs = 1;
}
void LCD_DataWrite(unsigned char Data)
{
cs = 0;
sck = 0;
sda = 0; //RW=0, write
sck = 1;
sck = 0;
sda = 1; //RS=1
sck = 1;
LCD_SendData(Data);
cs = 1;
}
void LCD_SendData(unsigned char buf)
{
unsigned char i;
for(i=0 ; i<8 ; i++)
{
sck = 0;
if(buf & 0x80)
sda = 1;
else
sda = 0;
sck= 1;
buf <<= 1;
}
sck = 1;
sda = 1;
}
|