摸了,不会用markdown。放上代码完事
链接: 基于STC8硬件SPI的TFT驱动 from gayhub.
代码是基于中景园的软件SPI屏幕驱动的,仅仅是改成了硬件SPI驱动
- 这里我总觉得时钟极性有问题,我在DSP28335上调成了上升沿驱动数据才好使,但stc8这样配置寄存器确实是好用的。
- 我用的STC8A8K
- STC的SPI居然没有自动拉低EA,还要手动拉低,绝了。
- 中断模式始终不好用,轮询凑合凑合。
//
void SpiInt()
{
LCD_CS = 1;
SPDAT=0;//数据寄存器清0
SPCTL=0xDC|4;//1101 11xx 主模式,使能,先传数据最高位,前时钟为下降沿,并在下降沿驱动数据,上升沿检测数据
SPSTAT = 0xc0; //清中断标志
// IE2 = ESPI; //使能SPI中断
// EA = 1;
LED=!LED;
}
/******************************************************************************
函数说明:LCD串行数据写入函数
入口数据:dat 要写入的串行数据
返回值: 无
******************************************************************************/
void LCD_Writ_Bus(u8 dat)
{
LCD_CS = 0; //拉低从机SS管脚
SPDAT = dat; //发送
while (!(SPSTAT & 0x80)); //查询完成标志
SPSTAT = 0xc0; //清中断标志
LCD_CS = 1;
}