关于【QC LCD12864B 】串行通讯时的【读取数据】

2019-07-15 11:36发布

大家好,非常抱歉打扰大家了。      我在使用该款LCD时,由于单片机为MSP430G2,IO口较少,所以决定采用串行模式。然而,串行我能够往里面写数据写命令,这都没问题,但是读数据却不行。1.在IAR Watch中,观察到每次收到的数据都是0.

2.读数据和写数据(三个字节)时序是一样的,只是第一个字节需要把RW RS改一下对吧?
3.说明书确实有关于串行读数据的说明,也就是说LCD可以串行读数据。
4.如果真不能串行读数据,没法读数据就没法任意打点了,这个问题不知道有没有什么解决方案?



附件是LCD手册
下面是我的读数据的程序:
uchar R_1byte(void)  
{  
     LCD_CS_H;                       //CS置1
     Write_8bits(0xfe);          //串行操作每次需要三个字节 这是第一个字节 写入1111 1110
     SID_IN;                           //数据SID位 置为输入
     uint i,Temp_data=0x00;  
     LCD_CLK_L;                    //CLK置低,接受高四位的第一位
//下面把高四位转移到Temp_data
    for(i=0; i<4; i++)
      {   
        if(P1IN&BIT2)  //  (P1.2是数据SID位) 判断数据位是否为1
          {  
            Temp_data|=0x01  ;
            Temp_data=Temp_data<<1;
             LCD_CLK_H;          //CLK = 1;
             LCD_CLK_L;           // CLK=0
          }  
       else         
         {  
            Temp_data&=~0x00;  
            Temp_data=Temp_data<<1;
            LCD_CLK_H;     //CLK=1
            LCD_CLK_L;      // CLK = 0;
         }  
      }
   for(i=0; i<4; i++)
      {  LCD_CLK_H;   LCD_CLK_L;  }  //四个时钟信号
//下面把低四位转移到Temp_data
  for(i=0; i<4; i++)
     {   
        if(P1IN&BIT2)  //判断对应位是否为0  
          {  
            Temp_data|= 0x01  ;
            Temp_data=Temp_data<<1;
            LCD_CLK_H;
            LCD_CLK_L;
          }  
        else         
          {  
            Temp_data&=~0x00;  
            Temp_data=Temp_data<<1;
            LCD_CLK_H;
            LCD_CLK_L;
         }  
      }
   for(i=0; i<4; i++)
      {  LCD_CLK_H;   LCD_CLK_L;  }  //四个时钟信号
LCD_CS_L;               //CS置0完成读取

return Temp_data;
}  

育松电子 QC12864B使用说明.pdf 下载积分: 积分 -1 分
285.61 KB, 下载次数: 38, 下载积分: 积分 -1 分
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
人中狼
1楼-- · 2019-07-15 14:10
有没有考虑过给出的时钟信号太快了
人中狼
2楼-- · 2019-07-15 14:52
在读取数据之前,或许还需要设置一下地址,应该是要指定读取数据的地址,还可以将读取的数据在液晶上显示,可以对照看看IAR里看到的数据对不对
嘴巴选手
3楼-- · 2019-07-15 18:21
 精彩回答 2  元偷偷看……
人中狼
4楼-- · 2019-07-15 18:44
如果有兴趣的话可以继续试试,也算是经验积累,你现在的时序是CLK低电平时读数据,看资料,可能是CLK上升沿数据就有效了,或许你该改成CLK置1后读数据
谷雨一号
5楼-- · 2019-07-15 19:53
不用试了,串行堵不到任何东西。

一周热门 更多>