OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8511|回复: 5

ucgui demo显示求助

[复制链接]

5

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2013-1-30
在线时间
3 小时
发表于 2013-2-1 12:21:06 | 显示全部楼层 |阅读模式
            


 


 


 

如图,使用原子哥给的例程修改后的ucGUI界面 每次刷全屏的时候智能刷左边,右边刷不掉。

只调用修改的画点函数就没有问题,我修改了画水平线和垂直线的函数就有问题。
/***************************
区域内填充颜色,可以为一个直线,水平或者垂直线也属于区域
;x x起始地址
; y y起始地址
; xW 填充宽度
; yH 填充高度
;color 填充颜色
****************************/
void Lcd_DispColor( u16 x, u16 y, u16 xW, u16 yH, u16 color )
{

    u32 num;
    u32 i;
    u8 ch, cl;
    num = xW * yH;
    ch = ( color >> 8 ) & 0xFF;
    cl = color & 0xFF;
    DispAddrRst();
    DispAddrSet( x, y, xW, yH );
    SendDataSet();
    for( i = 0; i < num; i++ )
    {
        SendData8H8L( ch, cl );
    }
    SendDataClr();
}

//修改后只用于画水平线horizontal
void Lcd_DrawHLine( u16 Xs, u16 Ys, u16 Xe, u16 Ye, u16 color )
{
    //Ys=Ye;
    ( Xs < Xe ) ? Lcd_DispColor( Xs, Ys, Xe - Xs, 1 , color ) : Lcd_DispColor( Xe, Ys, Xs - Xe, 1 , color );
 Delay( 2000 );
}
//修改后只用于画垂直线
void Lcd_DrawVLine( u16 Xs, u16 Ys, u16 Xe, u16 Ye, u16 color )
{
    //Xs=Xe;
    ( Ys < Ye ) ? Lcd_DispColor( Xs, Ys, 1, Ye - Ys, color ) : Lcd_DispColor( Xs, Ye, 1, Ys - Ye, color );
}

ili9320_ucgui.c中的函数如下,

int LCD_L0_Init( void )
{
    ili9320_Initializtion();
    return 0;
}

void LCD_L0_SetPixelIndex( int x, int y, int PixelIndex )
{
    ili9320_SetPoint( x, y, PixelIndex );
}

unsigned int LCD_L0_GetPixelIndex( int x, int y )
{
    return ili9320_GetPoint( x, y );
}

void LCD_L0_SetOrg( int x, int y )
{

}

void LCD_L0_XorPixel( int x, int y )
{
    LCD_PIXELINDEX Index = ili9320_GetPoint( x, y );
    ili9320_SetPoint( x, y, LCD_NUM_COLORS - 1 - Index );
}

void LCD_L0_DrawHLine( int x0, int y,  int x1 )
{
// GUI_Line( x0, y, x1, y, LCD_COLORINDEX );  //原函数
// DispColor( x0, y, x1, y, LCD_COLORINDEX );
 Lcd_DrawHLine( x0, y, x1, y, LCD_COLORINDEX );     //
}

void LCD_L0_DrawVLine( int x, int y0,  int y1 )
{
//    GUI_Line( x, y0, x, y1, LCD_COLORINDEX );  //原函数
// DispColor( x, y0, x, y1, LCD_COLORINDEX );
   Lcd_DrawVLine( x, y0,x, y1, LCD_COLORINDEX );
}

 

我用的控制器是9163c,谁知道为什么会出现这种问题。



 

 

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-2-2 10:54:02 | 显示全部楼层
你自己实现的那几个函数,有没有经过测试?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

5

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2013-1-30
在线时间
3 小时
 楼主| 发表于 2013-2-18 10:07:30 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
单独裸机测试是OK的,最后发现是使用原子哥提供的那个ucgui.lib即使改变了屏的大小配置也只用在示波器的那一页是有效的,其他页面在画图的时候,屏的大小还是按照240*320画的。最后就出错了。

自己按照3.98A的ucgui来生成库文件,拷贝了UCGUI文件夹下的所有文件家和配置文件夹生成的库比原子哥的库文件要小几MB。并且使用自己生成的库文件在运行DEMO的时候只能跑一遍,第二遍在显示第一幅图之后就不能再动了。

原子哥能不能提供一个生成库文件的工程啊?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-2-19 12:42:44 | 显示全部楼层
回复【3楼】guhan121:
---------------------------------
生成库文件的工程?
什么意思?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

5

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2013-1-30
在线时间
3 小时
 楼主| 发表于 2013-2-19 13:52:22 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
你的实验29不是使用的一个ucGUI.lib么,有没有在制作这个库文件的时候修改了ucgui的源代码?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-2-19 15:40:42 | 显示全部楼层
没,这个lib不是我生成的,呵呵。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-22 06:13

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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