OpenEdv-开源电子网

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

ucGUI刷新速度求助

[复制链接]

5

主题

12

帖子

0

精华

初级会员

Rank: 2

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

我正在做移植ucgui+ucos到一款使用9163c控制器的TFT LCD(1.44)上,分辨率128*128.

使用的源码是原子哥提供的实验29的源码,只修改了初始化函数,写点颜色,读点颜色的函数,显示也正常。

一开始,由于原子哥的代码Lcd_GetXSize()和Lcd_GetYSize()得出来的值移植是240,320 显示不对,我直接定义

#deifne Lcd_GetXSize() (128)

#deifne Lcd_GetYSize() (128)

然后就发现在填充全屏颜色时屏幕是自上而下一点点的刷新,有明显的一条分界线,线上是刷新后的颜色,线下是刷新前的颜色,但是在一屏中显示汉字又没有问题。

在开始画PCB时由于没有合适的管脚,8BIT的数据叫分成了8个管脚。

读写管脚数据代码如下:

/*********************************************************************************************************
** Name     :   DATAOUT
** Function :   输出一个8位数到对应管脚
** Input    :
** Output   :
** Other    :   for 9163c
*********************************************************************************************************/

void DATAOUT( u8 x )
{
    LCD_D7 = ( ( x >> 7 ) & 0x01 );
    LCD_D6 = ( ( x >> 6 ) & 0x01 );
    LCD_D5 = ( ( x >> 5 ) & 0x01 );
    LCD_D4 = ( ( x >> 4 ) & 0x01 );
    LCD_D3 = ( ( x >> 3 ) & 0x01 );
    LCD_D2 = ( ( x >> 2 ) & 0x01 );
    LCD_D1 = ( ( x >> 1 ) & 0x01 );
    LCD_D0 = ( ( x >> 0 ) & 0x01 );
}
/*********************************************************************************************************
** Name     :   GetData
** Function :   取得相应管脚的值
** Input    :
** Output   :
** Other    :   for 9163c
*********************************************************************************************************/
u8 GetData( void )
{
    u8  IN = 0;
    IN |=  PCin( 6 ) << 0x7;
    IN |=  PCin( 7 ) << 0x6;
    IN |=  PCin( 8 ) << 0x5;
    IN |=  PCin( 9 ) << 0x4;
    IN |=  PAin( 11 ) << 0x3;
    IN |=  PAin( 12 ) << 0x2;
    IN |=  PAin( 13 ) << 0x1;
    IN |=  PAin( 14 ) << 0x0;
    return IN;
}
其他的控制管脚我都是直接操作寄存器 BSRR 和BRR ,就数据管脚没办法那样操作。不知道刷新速度是不是数据管脚输出的问题。

还有就是9163C在写/读一点的颜色时,是先传输坐标点,在传输颜色,不知道是不是因为全屏时要一直一个个点来操作才会这样慢!

求救了,谁有好办法能让刷新速度快一点。


 

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-1-30 17:42:08 | 显示全部楼层
回复【楼主位】guhan121:
---------------------------------
你这种IO使用方法,速度没多少提升空间了....
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

5

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2013-1-30
在线时间
3 小时
 楼主| 发表于 2013-1-31 11:32:16 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
没办法,管脚是别人画板子的时候弄的。
我昨天试了一下重写和ucgui的两个画线程序显示提升了不少。
但是还是有问题Ucgui第一个页面全屏填充的时候居然只填充左边没有填充右边。
在找找原因。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-22 01:35

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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