请教操作过SSD1963屏驱动的高手指点,急求

2019-08-17 09:47发布

现在我在操作SSD1963屏驱动,为了测试读写寄存器函数有没有问题
我发现自己可以写进去,屏上现象发生改变.
但是老是读不出来,不知道是什么问题
我测试读函数时,去读SSD1963的ID寄存器0XA1,但是老是读出来是0.
该寄存器有5个参数,请用过的高手指点下.
读寄存器该如何写
我的程序如下:
uint16_t a,b,c,d,e;
Write_command(0xA1);
Delay(5);//5ms
a=Read_command(0xA1);
b=Read_command(0xA1);
c=Read_command(0xA1);
c=Read_command(0xA1);
e=Read_command(0xA1);
printf("a=0x%x",a);
printf("b=0x%x",b);
printf("c=0x%x",c);
printf("d=0x%x",d);
printf("e=0x%x",e);
请问程序这样写对吗???


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
16条回答
promcu
2019-08-18 09:45
LCD_WR_REG(0xa1);  
//DeviceCode = LCD_ReadReg(0x00a1);   
printf("19963 LCD ID:%x ",LCD_ReadReg(0x00a1)); //打印LCD ID 
printf("19963 LCD ID:%x ",LCD_ReadReg(0x00a1)); //打印LCD ID 
printf("19963 LCD ID:%x ",LCD_ReadReg(0x00a1)); //打印LCD ID 
printf("19963 LCD ID:%x ",LCD_ReadReg(0x00a1)); //打印LCD ID 
printf("19963 LCD ID:%x ",LCD_ReadReg(0x00a1)); //打印LCD ID  



u16 LCD_ReadReg(u8 LCD_Reg)
{    
u16 t;
// LCD_WR_REG(LCD_Reg);  //写入要读的寄存器号  
GPIOB->CRL=0X88888888; //PB0-7  上拉输入
GPIOB->CRH=0X88888888; //PB8-15 上拉输入
GPIOB->ODR=0XFFFF;    //全部输出高
#if LCD_FAST_IO==1 //快速IO
LCD_RS_SET;
LCD_CS_CLR;
//读取数据(读寄存器时,并不需要读2次)
LCD_RD_CLR;
delay_us(5);//FOR 8989,延时5us    
LCD_RD_SET;
t=DATAIN;  
LCD_CS_SET; 
#else
LCD_RS=1;
LCD_CS=0;
//读取数据(读寄存器时,并不需要读2次)
LCD_RD=0;    
LCD_RD=1;
t=DATAIN;  
LCD_CS=1; 
#endif  
GPIOB->CRL=0X33333333; //PB0-7  上拉输出
GPIOB->CRH=0X33333333; //PB8-15 上拉输出
GPIOB->ODR=0XFFFF;    //全部输出高
return t;  
}   

一周热门 更多>