硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2948|回复: 4
收起左侧

[emWin] 160*160打点函数,驱动是UC1698U

[复制链接]

98

主题

356

回帖

650

积分

金牌会员

积分
650
发表于 2019-7-18 15:31:02 | 显示全部楼层 |阅读模式
160*160屏幕在电力上用的还挺多的,我手头这款驱动是uc16998u,它本是一款RGB屏的驱动,用来驱动黑白屏时,是把RGB当成3个像素点来操作的,所以画点函数稍显麻烦。
这里采用的是直接操作驱动器内部RAM实现的,因为画个点步骤太多,实际项目建议还是直接在内存中操作,采用刷屏的方式实现,贴出来供大家研究一下。

/**
  * @brief  读写指定位置块像素
  *         3个像素为一个操作单位,按照565格式组成一个16位数
        * @param  row        :行
        * @param  col        :列
        * @param  rw        :0=读 1=写
        * @param  dat        :写入的像素数据
  * @retval 像素数据
  */
static uint16_t RWLcdRamVal(uint8_t row,uint8_t col,uint8_t rw,uint16_t dat)
{
  uint16_t val;
  /*
    设置LCD内部RAM坐标
  */
  col += 0x25;
  LCD_Write_Com(0x0F & col);
  LCD_Write_Com(0x10 | (col>>4));
  LCD_Write_Com(0x60 | (0x0F & row));
  LCD_Write_Com(0x70 | (row>>4));

  if(!rw)  /*  读 */
  {
    val = LCD_Read_Dat()<<8;
    val |= LCD_Read_Dat();
  }
  else    /*  写 */
  {
    LCD_Write_Dat(dat>>8);
    LCD_Write_Dat(dat);
  }
  return val;
}
/**
  * @brief  读点函数
        * @param  row        :行
        * @param  col        :列
  * @retval 0=灭 1=亮
  */
uint8_t LcdReadPixel(uint8_t x,uint8_t y)
{
  uint16_t dat;

  dat = RWLcdRamVal(y,x/3,0,0);  /*  获取所在组的3个像素点  */

  if(dat&PixValMap[x%3])
  {
    return 1;
  }
  else
  {
    return 0;
  }
}
/**
  * @brief  画点函数
  *         当前值若和新设置的值相同则不再重复设置
        * @param  row        :行
        * @param  col        :列
        * @param  val        :0=灭 1=亮
  * @retval 无
  */
void LcdSetPixel(uint8_t x,uint8_t y,uint8_t val)
{
  uint16_t dat;

  dat = RWLcdRamVal(y,x/3,0,0);  /*  获取所在组的3个像素点  */

  if(val) /*  点亮  */
  {
    if(!(dat&PixValMap[x%3]))
    {
      dat |= PixValMap[x%3];
      RWLcdRamVal(y,x/3,1,dat);
    }
  }
  else    /*  熄灭  */
  {
    if(dat&PixValMap[x%3])
    {
      dat &= ~PixValMap[x%3];
      RWLcdRamVal(y,x/3,1,dat);
    }
  }
}




回复

使用道具 举报

23

主题

1443

回帖

1512

积分

至尊会员

积分
1512
发表于 2019-7-18 15:32:46 | 显示全部楼层
这种屏显示效果漂亮不,楼主方便发个照片不
代码不规范,亲人两行泪!
回复

使用道具 举报

98

主题

356

回帖

650

积分

金牌会员

积分
650
 楼主| 发表于 2019-7-18 15:47:16 | 显示全部楼层
missfox 发表于 2019-7-18 15:32
这种屏显示效果漂亮不,楼主方便发个照片不

黑白屏再漂亮还是黑白的,刚把EMWIN移植上去,屏幕质量不咋地,受潮了就变这样了。 QQ截图20190718154118.png
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115778
QQ
发表于 2019-7-18 16:56:42 | 显示全部楼层
云琴箫龙 发表于 2019-7-18 15:47
黑白屏再漂亮还是黑白的,刚把EMWIN移植上去,屏幕质量不咋地,受潮了就变这样了。

显示屏上黄色的东西是什么东东
回复

使用道具 举报

98

主题

356

回帖

650

积分

金牌会员

积分
650
 楼主| 发表于 2019-7-18 17:02:06 | 显示全部楼层
eric2013 发表于 2019-7-18 16:56
显示屏上黄色的东西是什么东东

屏幕下面的保护膜,往背光板上贴的时候忘了把它给揭下来了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-5-18 07:11 , Processed in 0.265249 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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