硬汉嵌入式论坛

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

[有问必答] V3+4.3寸屏的问题

[复制链接]

13

主题

20

回帖

59

积分

初级会员

积分
59
发表于 2014-6-13 17:21:46 | 显示全部楼层 |阅读模式
我用V3+4.3寸的屏,使用"Ex028-使用RA8875外挂字库芯片显示汉字例程(V1.2)"例程做了如下修改,画线功能就失效了请问是为什么呢?
修改后的例程如下:
Ex028-使用RA8875外挂字库芯片显示汉字例程(V1.2).zip (1.21 MB, 下载次数: 116)


LCD_DrawLine(200, 200, 50, 50, CL_WHITE);
  
  for (i = 0; i < 6; i++)
  {
    LCD_DrawLine(i * 50, 50, (i + 1) * 50, 50, CL_WHITE);
    LCD_DrawLine((i + 1) * 50, 50, (i + 1) * 50, 50, CL_WHITE);  //当开始和结束点相同时,之后的画线功能就无效了!!!
  }   
  
  LCD_DrawLine(200, 50, 50, 200, CL_WHITE);
  
    /* 进入主程序循环体 */
    fRefresh = 0;  //为显示直线,屏蔽掉
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107392
QQ
发表于 2014-6-13 18:48:35 | 显示全部楼层
单独的用这个函数写一个起始点和结束相同的,看看能成功不。
回复

使用道具 举报

13

主题

20

回帖

59

积分

初级会员

积分
59
 楼主| 发表于 2014-6-14 08:12:43 | 显示全部楼层
用LCD_DrawLine(50, 50, 50, 50, CL_WHITE);打一个点不成功,后面的画线功能都失效了
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107392
QQ
发表于 2014-6-14 10:57:38 | 显示全部楼层

回 pigy0754 的帖子

pigy0754:用LCD_DrawLine(50, 50, 50, 50, CL_WHITE);打一个点不成功,后面的画线功能都失效了 (2014-06-14 08:12) 
这个函数估计有问题,不能实现起始点和结束点相同的绘制
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107392
QQ
发表于 2014-6-14 10:58:56 | 显示全部楼层
V2和V3开发板用的RA8875驱动有段时间没有更新了,看这个V5开发板上的这个函数吧,解决了这个问题:

/*
*********************************************************************************************************
*    函 数 名: RA8875_DrawLine
*    功能说明: 采用RA8875的硬件功能,在2点间画一条直线。
*    形    参:
*            _usX1, _usY1 :起始点坐标
*            _usX2, _usY2 :终止点Y坐标
*            _usColor     :颜色
*    返 回 值: 无
*********************************************************************************************************
*/
void RA8875_DrawLine(uint16_t _usX1 , uint16_t _usY1 , uint16_t _usX2 , uint16_t _usY2 , uint16_t _usColor)
{
    /* pdf 第131页
        RA8875 支持直线绘图功能,让使用者以简易或低速的MCU 就可以在TFT 模块上画直线。先设
        定直线的起始点REG[91h~94h] 与结束点REG[95h~98h],直线的颜色REG[63h~65h],然后启
        动绘图设定REG[90h] Bit4 = 0, Bit0=0 且REG[90h] Bit7 = 1,RA8875 就会将直线的图形写入
        DDRAM,相对的在TFT 模块上就可以显示所画的直线。
    */

    if ((_usX1 == _usX2) && (_usY1 == _usY2))
    {
        RA8875_PutPixel(_usX1, _usY1, _usColor);
        return;
    }
   
    /* 设置起点坐标 */
    RA8875_WriteReg(0x91, _usX1);
    RA8875_WriteReg(0x92, _usX1 >> 8);
    RA8875_WriteReg(0x93, _usY1);
    RA8875_WriteReg(0x94, _usY1 >> 8);

    /* 设置终点坐标 */
    RA8875_WriteReg(0x95, _usX2);
    RA8875_WriteReg(0x96, _usX2 >> 8);
    RA8875_WriteReg(0x97, _usY2);
    RA8875_WriteReg(0x98, _usY2 >> 8);

    RA8875_SetFrontColor(_usColor);    /* 设置直线的颜色 */

    s_ucRA8875Busy = 1;
    RA8875_WriteReg(0x90, (1 << 7) | (0 << 4) | (0 << 0));    /* 开始画直线 */
//    while (RA8875_ReadReg(0x90) & (1 << 7));                /* 等待结束 */
    RA8875_WaitBusy();
    s_ucRA8875Busy = 0;
}
回复

使用道具 举报

13

主题

20

回帖

59

积分

初级会员

积分
59
 楼主| 发表于 2014-6-14 11:26:54 | 显示全部楼层

回 eric2013 的帖子

eric2013:V2和V3开发板用的RA8875驱动有段时间没有更新了,看这个V5开发板上的这个函数吧,解决了这个问题:

/*
*********************************************************************************************************
*    函 数 名: RA8875_DrawLine
...... .. (2014-06-14 10:58) 
我目前就是这样,单点用打点函数处理,暂时解决。想问下V5上GUI的程序能在V3上用么,好像V5的例程更多啊。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107392
QQ
发表于 2014-6-14 12:04:59 | 显示全部楼层

回 pigy0754 的帖子

pigy0754:我目前就是这样,单点用打点函数处理,暂时解决。想问下V5上GUI的程序能在V3上用么,好像V5的例程更多啊。 (2014-06-14 11:26) 
需要大内存的V3暂时跑不起来,其它的都可以。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-29 09:22 , Processed in 0.229128 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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