矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
楼主: peiguoqing

关于LCD时序抓捕,请教

[复制链接]
     
 楼主| 发表于 2020-10-3 10:55:06 | 显示全部楼层
iffi123 发表于 2020-10-3 10:53
上电之后先清屏,就是所有点写零,不然哪怕没有写入显示数据,也是杂点

我试了,写不了
只能写一行
不知为什么
回复 支持 反对

使用道具 举报

     
发表于 2020-10-3 10:59:37 | 显示全部楼层
peiguoqing 发表于 2020-10-3 10:55
我试了,写不了
只能写一行
不知为什么

2个循环

stm32

void LCD_CLR(void)     //清屏
{ uint8_t i,j;
  uint8_t pageno=0xB0;
  for (i=0;i<9;i++)
   {
   LCD_cmd(pageno);   //设置页地址
   LCD_cmd(0x10);     //设置列地址
   LCD_cmd(0x00);         
   for (j=0;j<132;j++)
     { LCD_data(0x00); }  //填充00
     pageno++;                  
     }       
}       
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2020-10-3 11:20:58 | 显示全部楼层

  我的就是这样写的:

    //所有像素写一遍0;
    for(j=0;j<8;j++)
    {
        writeChar(1,j+0xb0);
        writeChar(1,0x10);      
        writeChar(1,0x00);

        for(i=0;i<132;i++)
            writeChar(0,0);
    }
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2020-10-3 11:24:34 | 显示全部楼层

您的LCD_CMD和LCD_DATA是怎么写的?
我这个writechar()对吗?
回复 支持 反对

使用道具 举报

     
发表于 2020-10-3 11:44:21 | 显示全部楼层
peiguoqing 发表于 2020-10-3 11:24
您的LCD_CMD和LCD_DATA是怎么写的?
我这个writechar()对吗?

和你的差不多
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2020-10-3 12:11:41 | 显示全部楼层

我就是奇怪,写一页,行。
再写另一页,就没反应了。
这是奇怪的地方。
回复 支持 反对

使用道具 举报

     
发表于 2020-10-4 10:25:06 | 显示全部楼层
是不是writeChar( )中没有加上一些延时造成的?特别是一些低速显示屏
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2020-10-5 19:21:41 | 显示全部楼层
chhds 发表于 2020-10-4 10:25
是不是writeChar( )中没有加上一些延时造成的?特别是一些低速显示屏

谢谢你,这两天外出干活了。没上电脑。so没回复。
我试试看。

写一行数据,从B0--B8,哪一行也行。但是,只能写一行。
再写第二行,就没有反应了。
所以,导致现在清屏都完不成。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2020-10-5 22:31:52 | 显示全部楼层
iffi123 发表于 2020-10-1 11:50
刚才的回复怎么被吃了

我对了下,很像主控ST7567或者接近型号

今晚上终于找到原因了。
可笑之事。
现在正常了。
乱用全局变量的结果。
在writechar里面,用了j。循环里面也用了j
回复 支持 反对

使用道具 举报

     
发表于 2020-10-5 22:49:25 | 显示全部楼层
peiguoqing 发表于 2020-10-5 22:31
今晚上终于找到原因了。
可笑之事。
现在正常了。


     这个。。。。
回复 支持 反对

使用道具 举报

     
发表于 2020-10-5 23:21:45 | 显示全部楼层
iffi123 发表于 2020-10-1 11:50
刚才的回复怎么被吃了

我对了下,很像主控ST7567或者接近型号

以前写ST7567的测试程序,搞了很久才确定驱动芯片型号,写的指令如下:

0xa2,        //偏压设置
0xa0,        //SEG扫描方向设置,屏幕左右显示方向,0xa0为正常,0xa1为左右翻转显示
0xc0,        //COM输出方向,屏幕上下显示方向,0xc0为正常显示,0xc8为上下翻转显示
0x80,        //设置显示起始行1~63
                                               
0x25,        //调节电阻比设置,高5位为设置指令,低三位(D2~D0)为数据位
0x81,0x22,//对比度设置,双字节指令,第一字节为设置指令,第二字节的低6位(D5~D0)为设置数据
               
0x2f,        //内置电源开关,低3位(D2~D0)为开关位
0xf8,0,        //升压比设置,双字节指令,第一字节为设置指令,第二字节为设置数据,0为0:4倍,1为1:5倍
0xa4,        //0xa5全屏点亮,0xa4正常显示
0xaf        //显示开关,0xaf开显示,0xae关显示

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

     
发表于 2020-10-6 09:00:55 | 显示全部楼层
fshwen 发表于 2020-10-5 23:21
以前写ST7567的测试程序,搞了很久才确定驱动芯片型号,写的指令如下:

0xa2,        //偏压设置

行扫描,如果按说明书0xC0应该是从上到下, 我这块屏,却相反, 0xC8才能正确显示,有点奇怪
回复 支持 反对

使用道具 举报

     
发表于 2020-10-6 19:15:22 | 显示全部楼层
都是高手,正在入门学习,还看不懂。
回复 支持 反对

使用道具 举报

     
发表于 2020-10-6 20:34:35 | 显示全部楼层
本帖最后由 fshwen 于 2020-10-6 20:38 编辑
iffi123 发表于 2020-10-6 09:00
行扫描,如果按说明书0xC0应该是从上到下, 我这块屏,却相反, 0xC8才能正确显示,有点奇怪


按说明书上讲,您设置了翻转显示,如果这样设置才能正常,这样的还没遇到过,我原来那个屏是拆的大唐电信的无线座机上的;最近又在一个垃圾无线座机上拆了个屏,怎么搜都找不到资料,从屏pcb的布线上猜测是ST7565的主控,几条控制线找出来但具体不知定义是什么,不过人懒了,几次想搞都拿出来又丢一边了。

1.jpg
2.jpg
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2020-10-7 10:16:35 | 显示全部楼层
junyee 发表于 2020-10-1 12:06
CLK 一般会有连续的等宽跳变.
DAT 在CLK 周期中变化.
RST 一般只在上电时拉低一段时间.

我抓了个信用社的ukey,几乎一样的。谢谢。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

小黑屋|手机版|矿石收音机 ( 蒙ICP备05000029号-1 )

蒙公网安备 15040402000005号

GMT+8, 2025-4-28 22:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表