搜索
bottom↓
回复: 31

救助下ST7567显示的反转问题

[复制链接]

出0入0汤圆

发表于 2017-5-27 10:42:34 | 显示全部楼层 |阅读模式
新用了一个液晶显示器,和以前的接线不一样,这个显示是反向的,在不改变显示字体的情况下,有可以配置寄存器让显示反转吗?
附上ST7567的初使化显示代码和液晶datasheet~


void LCD_Init(void)
{
       
        RCC->APB2ENR|=1<<2;//使能PORTA时钟       
//         RCC->APB2ENR|=1<<4;//使能PORTC时钟       

//        RCC->APB2ENR|=1<<0;    //??????
//        JTAG_Set(SWD_ENABLE);  //??SWD
                                                                                         
        //PORTa3~7
        GPIOA->CRL&=0X000000FF;
        GPIOA->CRL|=0X33333300;  
        GPIOA->ODR|=0X00F8;          

        LCD_RESB = 1;
        delay_us(100); //
        LCD_RESB = 0;
        delay_us(100);
        LCD_RESB = 1;
        delay_us(100);

        write_byte(LCD_CMD,0xe2);   // (14) Soft Reset
  write_byte(LCD_CMD,0xa1);         // Set seg direct
  write_byte(LCD_CMD,0xcf);         // Set com direct
//   write_byte(LCD_CMD,0xB0);         //
  write_byte(LCD_CMD,0xf8);         // Set Booster
  write_byte(LCD_CMD,0x00);         // 5x
//   write_byte(LCD_CMD,0xA2);         // set lcd bias = 1/9
  write_byte(LCD_CMD,0xA3);         // set lcd bias = 1/7
  write_byte(LCD_CMD,0x24);         // set internal rb/ra=5.0
//   write_byte(LCD_CMD,0x24);         // set internal rb/ra=5.0
        v_LCD_Write_Windows(SEG_ORG_OFFSET,131,0,8,0x00);
  write_byte(LCD_CMD,0x2f);         // all built-in power circuits on
  write_byte(LCD_CMD,0x81);        // set contrast
  write_byte(LCD_CMD,0x1c);          //vop
  write_byte(LCD_CMD,0xaf);         // dispaly on
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2017-5-27 11:03:27 | 显示全部楼层
思路错误!!!!字体是有颜色之分的,当然包括仅仅只是黑白色!!!字库里面仅仅表示的是点亮还是熄灭!!!!换句话说就是,
if(font) {
     点亮字体颜色
} else {
    熄灭字体颜色
}

出0入0汤圆

发表于 2017-5-27 11:07:12 | 显示全部楼层
不知道你能不能明白我意思,不明白我也没办法,你只需要改一下字体驱动部分的程序就够了!!!!

出0入0汤圆

 楼主| 发表于 2017-5-27 11:22:30 | 显示全部楼层
OneRain 发表于 2017-5-27 11:07
不知道你能不能明白我意思,不明白我也没办法,你只需要改一下字体驱动部分的程序就够了!!!! ...

我的意思是,现在是倒过来显示的,ST7567可以算有8行(每行8格),128列,现在是1行显示到了8行,2行显示到了6行,1列显示到128列,2列到了127列~
不知道芯片驱动里面是否有寄存器反过来配置的,我初步看了下,是没有的,只能改行列显示了

出0入0汤圆

发表于 2017-5-27 11:40:04 | 显示全部楼层
rogerllg 发表于 2017-5-27 11:22
我的意思是,现在是倒过来显示的,ST7567可以算有8行(每行8格),128列,现在是1行显示到了8行,2行显示 ...

显示屏肯定有反显,但是都是全局反显,局部可设定反显的显示屏没遇到过!!!至于我说的那个思路,看来你还是没懂!!!!没懂就算了吧,一切都是缘分!!!

出0入0汤圆

发表于 2017-5-27 11:45:14 | 显示全部楼层
  write_byte(LCD_CMD,0xa1);         // Set seg direct
  write_byte(LCD_CMD,0xcf);         // Set com direct

改成

  write_byte(LCD_CMD,0xa0);
  write_byte(LCD_CMD,0xc8);

试试看.

出0入0汤圆

发表于 2017-5-27 11:48:48 | 显示全部楼层
本帖最后由 OneRain 于 2017-5-27 11:52 编辑

对了,在啰嗦一句,对于这种点阵屏,不管是是一页一页ram的,还是一个点就是一个byte的。。。。所有思路都是集中在点上面,点、点、点,重要的事情说三遍,这样写驱动的时候,你会发现简单、明了,而且还通用 !!!!要是你还是不懂,那也算了,毕竟一切都是缘分,是不!!!!

出0入0汤圆

 楼主| 发表于 2017-5-27 12:28:59 | 显示全部楼层
Stargazer-1986 发表于 2017-5-27 11:45
write_byte(LCD_CMD,0xa1);         // Set seg direct
  write_byte(LCD_CMD,0xcf);         // Set com ...

这个只是改变扫描的顺序,也就是先扫后扫的问题,对屏的反转并没有用的~

出0入0汤圆

 楼主| 发表于 2017-5-27 12:31:05 | 显示全部楼层
OneRain 发表于 2017-5-27 11:48
对了,在啰嗦一句,对于这种点阵屏,不管是是一页一页ram的,还是一个点就是一个byte的。。。。所有思路都 ...

看来你没有明白我的意思。。。。
6楼明白了~
点点点的问题也不是不能改,改个半个小时就能好~ 我只是想了解下寄存器里面是否有配置的,实践证明,是没有配置的。
实在不行,改下硬件,把LED屏旋转个180度放,也是可以解决问题的。

出0入0汤圆

发表于 2017-5-27 12:38:15 | 显示全部楼层
当然有  代码就再LCD初始化里面    可以左右镜像 上下镜像

出0入0汤圆

 楼主| 发表于 2017-5-27 12:39:25 | 显示全部楼层
ayumi8 发表于 2017-5-27 12:38
当然有  代码就再LCD初始化里面    可以左右镜像 上下镜像

知道是哪个寄存器吗?我试了不管用呢~

出0入0汤圆

发表于 2017-5-27 12:41:29 | 显示全部楼层
w_cmd(0xA0);    //ADC selection(SEG0->SEG128)   左右镜像  0XA0  0XA1//ADC select,REVERSE 127-->0(a0,a1)//左右镜像
w_cmd(0xC8);    //SHL selection(COM0->COM64)   //com select,NORMAL 0-->63(c8,c0)//上下镜像

出0入0汤圆

 楼主| 发表于 2017-5-27 12:42:16 | 显示全部楼层
ayumi8 发表于 2017-5-27 12:38
当然有  代码就再LCD初始化里面    可以左右镜像 上下镜像

WrateC(0xA0);//ADC seg
镜像选择
0xa0
正常,
0xA1
左右镜像
  WrateC(0xc0);//com output scan direction

com
镜像选择
0xc0
正常,
0xC8
上下镜像

试了不管用的。

出0入0汤圆

发表于 2017-5-27 12:42:59 | 显示全部楼层
rogerllg 发表于 2017-5-27 12:31
看来你没有明白我的意思。。。。
6楼明白了~
点点点的问题也不是不能改,改个半个小时就能好~ ...

OneRain也是明白你的意思.只不过具体解决问题的方式不一样而已,他提示你思路集中在"点"上,就不用担心实际屏是正还是反的了...

要想屏显示反转过来,无外乎就是设置水平方向和垂直方向的扫描方向,看看datasheet应该有对应寄存器的介绍的.再不行,直接问FAE.

出0入0汤圆

发表于 2017-5-27 12:48:09 | 显示全部楼层
rogerllg 发表于 2017-5-27 12:42
WrateC(0xA0);//ADC seg
镜像选择
0xa0

我这个代码我自己用过  真的是可以的  


你这个PDF 里面也有这个提到 命令  一模一样   你不能用 你再找找你程序的问题吧




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2017-5-27 12:52:58 | 显示全部楼层
ayumi8 发表于 2017-5-27 12:48
我这个代码我自己用过  真的是可以的  

我这边用过了,不用反转 ~
估计屏有问题,我调过3种类似的屏,我试下其他屏用这个行不行。

出0入0汤圆

发表于 2017-5-27 12:56:15 | 显示全部楼层
rogerllg 发表于 2017-5-27 12:52
我这边用过了,不用反转 ~
估计屏有问题,我调过3种类似的屏,我试下其他屏用这个行不行。 ...

用  事实说话  看图  





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2017-5-27 13:07:23 | 显示全部楼层
用另外一个屏驱动软件进行了反转,证明如下是可用的,应该是屏的问题,不能反转 ~
w_cmd(0xA0);    //ADC selection(SEG0->SEG128)   左右镜像  0XA0  0XA1//ADC select,REVERSE 127-->0(a0,a1)//左右镜像
w_cmd(0xC8);    //SHL selection(COM0->COM64)   //com select,NORMAL 0-->63(c8,c0)//上下镜像




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2017-5-27 13:09:02 | 显示全部楼层
ayumi8 发表于 2017-5-27 12:56
用  事实说话  看图

证明是屏的问题,不是程序的问题,你们所说的是可以的~

出0入0汤圆

发表于 2017-5-27 13:19:10 来自手机 | 显示全部楼层
上面说的寄存器改变上下左右方向,还有一个改起始行,写0x60试下。

出0入0汤圆

发表于 2017-5-27 13:43:01 | 显示全部楼层
rogerllg 发表于 2017-5-27 12:31
看来你没有明白我的意思。。。。
6楼明白了~
点点点的问题也不是不能改,改个半个小时就能好~ ...

哦,原来是反转啊!!!我去,我还以为说是反显。。。。当然了,后面提到的点点点可以解决你说的反转哦!!!即使你反转任何度都是可以的哦!!!!

出0入0汤圆

发表于 2017-5-27 13:43:39 | 显示全部楼层
本帖最后由 OneRain 于 2017-5-27 13:45 编辑
Stargazer-1986 发表于 2017-5-27 12:42
OneRain也是明白你的意思.只不过具体解决问题的方式不一样而已,他提示你思路集中在"点"上,就不用担心实际 ...


其实这个也不是我要说的!!!我说的是底层驱动到点!!!参考一下uc_GUI的那个驱动!!!

出0入0汤圆

发表于 2017-5-27 13:48:13 | 显示全部楼层
看来还是我看错了题目的意思!!!丢脸ing,但是呢,我说的那个集中在点上面的思路是可以解决你这个问题的。。。。具体可以参考ucGUI底层驱动。。。。你会发现和屏幕完全无关!!!对了,这种屏幕,一般是有可以改方向的,好像是改seg的对应!!!

出0入0汤圆

发表于 2017-5-27 13:58:26 | 显示全部楼层
OneRain 发表于 2017-5-27 13:43
其实这个也不是我要说的!!!我说的是底层驱动到点!!!参考一下uc_GUI的那个驱动!!! ...

我知道你说的是底层驱动到点,也用过ucGUI...

出0入0汤圆

发表于 2017-5-27 14:55:52 | 显示全部楼层
学习了 ,LCD驱动,

出0入0汤圆

 楼主| 发表于 2017-5-27 17:11:48 | 显示全部楼层
ayumi8 发表于 2017-5-27 12:56
用  事实说话  看图



我们反转一下,左右显示有点问题,你的好像正常啊~
一般ST7567有132列,用到的只有128,多的点有影响~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2017-5-27 20:13:08 来自手机 | 显示全部楼层
软件起始列地址在改下

出0入0汤圆

发表于 2017-5-27 20:14:03 来自手机 | 显示全部楼层
软件起始列地址再改下

出0入0汤圆

发表于 2017-5-28 01:00:53 来自手机 | 显示全部楼层
我最近用够屏第一列上面叠加有噪点也是这个问题吗

出0入0汤圆

 楼主| 发表于 2017-5-29 15:07:53 | 显示全部楼层
zhiwei 发表于 2017-5-28 01:00
我最近用够屏第一列上面叠加有噪点也是这个问题吗

屏有问题才会这样,或者供电或者电容不太对

出0入0汤圆

发表于 2017-5-29 17:01:54 | 显示全部楼层
rogerllg 发表于 2017-5-29 15:07
屏有问题才会这样,或者供电或者电容不太对

我在网上买的几块屏,ST7567驱动芯片。程序是7565的,驱动7565的屏没有问题,

出0入0汤圆

 楼主| 发表于 2017-5-29 21:40:35 | 显示全部楼层
zhiwei 发表于 2017-5-29 17:01
我在网上买的几块屏,ST7567驱动芯片。程序是7565的,驱动7565的屏没有问题, ...

说明原来的屏有问题啊~
我用量产过,有遇到过类似现象的屏,就是屏的问题~
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-19 09:06

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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