立即注册
查看: 9744|回复: 11

st7789s 240x240 MT6572上面显示不全,最右边黑边,求解答

发表于 2015-6-1 18:22:06 | 显示全部楼层 |阅读模式 来自 北京市
下面是图片
QQ截图20150601181235.png                
QQ截图20150601181255.png



最右边黑色边框,有没有遇到过。

已绑定手机
发表于 2015-6-1 18:48:55 | 显示全部楼层 来自 广东省深圳市
lcd 驱动没调好
我把驱动上传上来,帮忙看看吧,谢谢  详情 回复
发表于 2015-6-2 09:40
已绑定手机
发表于 2015-6-1 20:24:44 | 显示全部楼层 来自 广东省深圳市
你这个是不是有navigationbar哦,,去掉试试,
谢谢,就是这个问题。解决了  详情 回复
发表于 2015-6-2 16:24
我们发现,只要分辨率小于了240x320就会有这个黑边。  详情 回复
发表于 2015-6-2 09:41
 楼主| 发表于 2015-6-2 09:40:40 | 显示全部楼层 来自 北京市

我把驱动上传上来,帮忙看看吧,谢谢
  1. #ifdef BUILD_LK
  2. #else
  3.     #include <linux/string.h>
  4. #endif
  5. #include "lcm_drv.h"

  6. // ---------------------------------------------------------------------------
  7. //  Local Constants
  8. // ---------------------------------------------------------------------------

  9. #define FRAME_WIDTH                                                                                  (240)
  10. #define FRAME_HEIGHT                                                                                 (240)
  11. #define LCM_ID       (0x8552)
  12. // ---------------------------------------------------------------------------
  13. //  Local Variables
  14. // ---------------------------------------------------------------------------

  15. static LCM_UTIL_FUNCS lcm_util = {0};

  16. #define SET_RESET_PIN(v)    (lcm_util.set_reset_pin((v)))

  17. #define UDELAY(n) (lcm_util.udelay(n))
  18. #define MDELAY(n) (lcm_util.mdelay(n))


  19. // ---------------------------------------------------------------------------
  20. //  Local Functions
  21. // ---------------------------------------------------------------------------

  22. static __inline void send_ctrl_cmd(unsigned int cmd)
  23. {
  24.    lcm_util.send_cmd(cmd);
  25. }


  26. static __inline void send_data_cmd(unsigned int data)
  27. {
  28.    lcm_util.send_data(data&0xff);
  29. }


  30. static __inline unsigned int read_data_cmd(void)
  31. {
  32.    return 0xFF&lcm_util.read_data();
  33. }


  34. static __inline void set_lcm_register(unsigned int regIndex,
  35.                                                             unsigned int regData)
  36. {
  37.    send_ctrl_cmd(regIndex);
  38.    send_data_cmd(regData);
  39. }


  40. static void sw_clear_panel(unsigned int color)
  41. {
  42.    unsigned short x0, y0, x1, y1, x, y;
  43.    unsigned short h_X_start,l_X_start,h_X_end,l_X_end,h_Y_start,l_Y_start,h_Y_end,l_Y_end;
  44.    
  45.    x0 = (unsigned short)0;
  46.    y0 = (unsigned short)0;
  47.    x1 = (unsigned short)FRAME_WIDTH-1;
  48.    y1 = (unsigned short)FRAME_HEIGHT-1;
  49.    
  50.    h_X_start=((x0&0xFF00)>>8);
  51.    l_X_start=(x0&0x00FF);
  52.    h_X_end=((x1&0xFF00)>>8);
  53.    l_X_end=(x1&0x00FF);
  54.    
  55.    h_Y_start=((y0&0xFF00)>>8);
  56.    l_Y_start=(y0&0x00FF);
  57.    h_Y_end=((y1&0xFF00)>>8);
  58.    l_Y_end=(y1&0x00FF);
  59.    
  60.    send_ctrl_cmd(0x2A);
  61.    send_data_cmd(h_X_start);
  62.    send_data_cmd(l_X_start);
  63.    send_data_cmd(h_X_end);
  64.    send_data_cmd(l_X_end);
  65.    
  66.    send_ctrl_cmd(0x2B);
  67.    send_data_cmd(h_Y_start);
  68.    send_data_cmd(l_Y_start);
  69.    send_data_cmd(h_Y_end);
  70.    send_data_cmd(l_Y_end);

  71.    send_ctrl_cmd(0x29);
  72.    send_ctrl_cmd(0x2C);
  73.    
  74.    for (y = y0; y <= y1; ++ y) {
  75.       for (x = x0; x <= x1; ++ x) {
  76.          send_data_cmd(color);
  77.           send_data_cmd(color);
  78.           send_data_cmd(color);
  79.       }
  80.    }
  81. }


  82. static void init_lcm_registers(void)
  83.         {
  84.                 send_ctrl_cmd(0x11);
  85.                 MDELAY(120);  
  86.                                
  87.                 send_ctrl_cmd(0x36);
  88.                 send_data_cmd(0x00);//40
  89.                
  90.                 send_ctrl_cmd(0x3a);
  91.                 send_data_cmd(0x06);//06
  92.                
  93.                 send_ctrl_cmd(0xb2);
  94.                 send_data_cmd(0x28);
  95.                 send_data_cmd(0x28);
  96.                 send_data_cmd(0x05);
  97.                 send_data_cmd(0x33);
  98.                 send_data_cmd(0x33);
  99.                
  100.                
  101.                
  102.                 send_ctrl_cmd(0xb7);
  103.                 send_data_cmd(0x35);
  104.                
  105.                 send_ctrl_cmd(0xbb);
  106.                 send_data_cmd(0x3c);//23
  107.                
  108.                 send_ctrl_cmd(0xb1);
  109.                 send_data_cmd(0x80);
  110.                 send_data_cmd(0x10);
  111.                
  112.                
  113.                 send_ctrl_cmd(0xc0);
  114.                 send_data_cmd(0x2c);
  115.                
  116.                 send_ctrl_cmd(0xc2);
  117.                 send_data_cmd(0x01);
  118.                
  119.                 send_ctrl_cmd(0xc3);
  120.                 send_data_cmd(0x05);//14
  121.                
  122.                 send_ctrl_cmd(0xc4);
  123.                 send_data_cmd(0x20);
  124.                
  125.                 send_ctrl_cmd(0xc6);
  126.                 send_data_cmd(0x14); // 14
  127.                
  128.                 send_ctrl_cmd(0xd0);
  129.                 send_data_cmd(0xa4);
  130.                 send_data_cmd(0xa1);
  131.                
  132.                 send_ctrl_cmd(0xe0);
  133.                 send_data_cmd(0xd0);
  134.                 send_data_cmd(0x00);
  135.                 send_data_cmd(0x02);
  136.                 send_data_cmd(0x07);
  137.                 send_data_cmd(0x07);
  138.                 send_data_cmd(0x19);
  139.                 send_data_cmd(0x2e);
  140.                 send_data_cmd(0x54);
  141.                 send_data_cmd(0x41);
  142.                 send_data_cmd(0x2d);
  143.                 send_data_cmd(0x17);
  144.                 send_data_cmd(0x18);
  145.                 send_data_cmd(0x14);
  146.                 send_data_cmd(0x18);
  147.                
  148.                 send_ctrl_cmd(0xe1);
  149.                 send_data_cmd(0xd0);
  150.                 send_data_cmd(0x00);
  151.                 send_data_cmd(0x02);
  152.                 send_data_cmd(0x07);
  153.                 send_data_cmd(0x04);
  154.                 send_data_cmd(0x24);
  155.                 send_data_cmd(0x2c);
  156.                 send_data_cmd(0x44);
  157.                 send_data_cmd(0x42);
  158.                 send_data_cmd(0x1c);
  159.                 send_data_cmd(0x1a);
  160.                 send_data_cmd(0x17);
  161.                 send_data_cmd(0x15);
  162.         send_data_cmd(0x18);
  163.                 send_ctrl_cmd(0x35);
  164.                 send_data_cmd(0x00);//40
  165.                
  166.                 send_ctrl_cmd(0x44);
  167.                 send_data_cmd(0x19);
  168.                
  169.                 send_ctrl_cmd(0x29);               

  170.                 sw_clear_panel(0x0);       

  171.         }


  172. // ---------------------------------------------------------------------------
  173. //  LCM Driver Implementations
  174. // ---------------------------------------------------------------------------

  175. static void lcm_set_util_funcs(const LCM_UTIL_FUNCS *util)
  176. {
  177.    memcpy(&lcm_util, util, sizeof(LCM_UTIL_FUNCS));
  178. }


  179. static void lcm_get_params(LCM_PARAMS *params)
  180. {
  181.         memset(params, 0, sizeof(LCM_PARAMS));

  182.         params->type = LCM_TYPE_DBI;
  183.         params->ctrl = LCM_CTRL_PARALLEL_DBI;
  184.         params->width = FRAME_WIDTH;
  185.         params->height = FRAME_HEIGHT;

  186.         //params->physical_width = PHYSICAL_WIDTH;
  187.         //params->physical_height = PHYSICAL_HEIGHT;
  188.         params->io_select_mode= 1;

  189.         params->dbi.port = 0;
  190.         params->dbi.clock_freq= LCM_DBI_CLOCK_FREQ_26M;
  191.         params->dbi.data_width = LCM_DBI_DATA_WIDTH_8BITS;
  192.         params->dbi.data_format.color_order = LCM_COLOR_ORDER_RGB;
  193.     params->dbi.data_format.trans_seq   = LCM_DBI_TRANS_SEQ_MSB_FIRST;
  194.     params->dbi.data_format.padding     = LCM_DBI_PADDING_ON_LSB;
  195.     params->dbi.data_format.format      = LCM_DBI_FORMAT_RGB666;
  196.     params->dbi.data_format.width       = LCM_DBI_DATA_WIDTH_8BITS;
  197.         params->dbi.cpu_write_bits = LCM_DBI_CPU_WRITE_8_BITS;
  198.         params->dbi.io_driving_current = LCM_DRIVING_CURRENT_8MA;

  199.         params->dbi.parallel.write_setup    = 1;
  200.         params->dbi.parallel.write_hold     = 10;
  201.         params->dbi.parallel.write_wait     = 15;
  202.         params->dbi.parallel.read_setup     = 1;
  203.         params->dbi.parallel.read_hold      = 10;
  204.         params->dbi.parallel.read_latency   = 45;
  205.         params->dbi.parallel.wait_period    = 1;

  206.         params->dbi.te_mode = LCM_DBI_TE_MODE_DISABLED;
  207.         //params->dbi.te_edge_polarity = LCM_POLARITY_RISING;
  208. }


  209. static void lcm_init(void)
  210. {
  211.     SET_RESET_PIN(1);
  212.     MDELAY(50);
  213.     SET_RESET_PIN(0);
  214.     MDELAY(100);
  215.     SET_RESET_PIN(1);
  216.     MDELAY(100);
  217.    
  218.     init_lcm_registers();   
  219. }


  220. static void lcm_suspend(void)
  221. {
  222.     send_ctrl_cmd(0x28);
  223.     MDELAY(100);
  224.     send_ctrl_cmd(0x010);   
  225. }


  226. static void lcm_resume(void)
  227. {
  228.     send_ctrl_cmd(0x11);
  229.     MDELAY(150);
  230.     send_ctrl_cmd(0x029);
  231. }


  232. static void lcm_update(unsigned int x, unsigned int y,
  233.                                        unsigned int width, unsigned int height)
  234. {
  235.    unsigned int h_X_start,l_X_start,h_X_end,l_X_end,h_Y_start,l_Y_start,h_Y_end,l_Y_end;

  236.    unsigned int x0 = x;
  237.    unsigned int y0 = y;
  238.    unsigned int x1 = x0 + width - 1;
  239.    unsigned int y1 = y0 + height - 1;
  240.    
  241.    h_X_start=((x0&0xFF00)>>8);
  242.    l_X_start=(x0&0x00FF);
  243.    h_X_end=((x1&0xFF00)>>8);
  244.    l_X_end=(x1&0x00FF);
  245.    
  246.    h_Y_start=((y0&0xFF00)>>8);
  247.    l_Y_start=(y0&0x00FF);
  248.    h_Y_end=((y1&0xFF00)>>8);
  249.    l_Y_end=(y1&0x00FF);
  250.    
  251.    send_ctrl_cmd(0x2A);
  252.    send_data_cmd(h_X_start);
  253.    send_data_cmd(l_X_start);
  254.    send_data_cmd(h_X_end);
  255.    send_data_cmd(l_X_end);
  256.    
  257.    send_ctrl_cmd(0x2B);
  258.    send_data_cmd(h_Y_start);
  259.    send_data_cmd(l_Y_start);
  260.    send_data_cmd(h_Y_end);
  261.    send_data_cmd(l_Y_end);

  262.    send_ctrl_cmd(0x29);
  263.    
  264.    send_ctrl_cmd(0x2C);
  265. }

  266. static unsigned int lcm_compare_id(void)
  267. {
  268.         unsigned  char id_tmp[4] ;
  269.         int lcd_id;
  270.         send_ctrl_cmd(0x04);
  271.         id_tmp[0]  =  read_data_cmd();
  272.     id_tmp[1]  =  read_data_cmd();
  273.     id_tmp[2]  =  read_data_cmd();
  274.     id_tmp[3]  =  read_data_cmd();
  275.     lcd_id = ((id_tmp[2]&0xff)<<8)|(id_tmp[3]&0xff);
  276.    
  277. #ifdef BUILD_LK
  278.         printf("ST7789S lcm_get_params id_tmp[2] = %d,id_tmp[3]= %d\n",id_tmp[2],id_tmp[3]);
  279. #endif

  280.     return (LCM_ID == lcd_id)?1:0;
  281. }


  282. LCM_DRIVER st7789s_lcm_drv =
  283. {
  284.     .name                        = "st7789s",
  285.         .set_util_funcs = lcm_set_util_funcs,
  286.         .get_params     = lcm_get_params,
  287.         .init           = lcm_init,
  288.         .suspend        = lcm_suspend,
  289.         .resume         = lcm_resume,
  290.         .update         = lcm_update,
  291.         .compare_id     = lcm_compare_id
  292. };
复制代码
 楼主| 发表于 2015-6-2 09:41:47 | 显示全部楼层 来自 北京市
nbanxf 发表于 2015-6-1 20:24
你这个是不是有navigationbar哦,,去掉试试,

我们发现,只要分辨率小于了240x320就会有这个黑边。
已绑定手机
已实名认证
发表于 2015-6-2 10:55:00 | 显示全部楼层 来自 广东省深圳市
修改应用层吧
发表于 2015-6-2 11:18:31 | 显示全部楼层 来自 广东省深圳市
只在6260上点亮过这个屏,与72平台能通用么?
发表于 2015-6-2 11:25:26 | 显示全部楼层 来自 广东省深圳市
navigation bar的原因,关掉就好了
谢谢谢谢,就是这个问题。已经解决。谢谢!!  详情 回复
发表于 2015-6-2 16:24
 楼主| 发表于 2015-6-2 16:24:04 | 显示全部楼层 来自 北京市
zhandoushi878 发表于 2015-6-2 11:25
navigation bar的原因,关掉就好了

谢谢谢谢,就是这个问题。已经解决。谢谢!!
 楼主| 发表于 2015-6-2 16:24:49 | 显示全部楼层 来自 北京市
nbanxf 发表于 2015-6-1 20:24
你这个是不是有navigationbar哦,,去掉试试,

谢谢,就是这个问题。解决了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

合作/建议

TEL: 19168984579

工作时间:
周一到周五 9:00-11:30 13:30-19:30
  • 扫一扫关注公众号
  • 扫一扫打开小程序
Copyright © 2013-2024 一牛网 版权所有 All Rights Reserved. 帮助中心|隐私声明|联系我们|手机版|粤ICP备13053961号|营业执照|EDI证
在本版发帖搜索
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表