OpenEdv-开源电子网

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

LCD_Fill();为何这个函数不行,硬件上完全没效果。

[复制链接]

8

主题

57

帖子

0

精华

初级会员

Rank: 2

积分
122
金钱
122
注册时间
2014-6-6
在线时间
3 小时
发表于 2014-6-13 21:59:04 | 显示全部楼层 |阅读模式
5金钱
//在指定区域内填充指定颜色
//区域大小xend-xsta+1)*(yend-ysta+1)
//xsta
//color:要填充的颜色
void LCD_Fill(u16 sx,u16 sy,u16 ex,u16 ey,u16 color)
{          
u16 i,j;
u16 xlen=0;
LCD_Scan_Dir(L2R_U2D);
#if USE_HORIZONTAL==1
xlen=ey-sy+1;   
for(i=sx;i<=ex;i++)
{
LCD_SetCursor(i,sy);       //设置光标位置 
LCD_WriteRAM_Prepare();     //开始写入GRAM  
for(j=0;j<xlen;j++)
LCD_SetCursor(sx,j); 
LCD_WR_DATA(color); //设置光标位置  
}
#else
xlen=ex-sx+1;   
for(i=sy;i<=ey;i++)
{
LCD_SetCursor(sx,i);       //设置光标位置 
LCD_WriteRAM_Prepare();     //开始写入GRAM  
for(j=0;j<xlen;j++)LCD_WR_DATA(color); //设置光标位置    
}
#endif
LCD_Scan_Dir(DFT_SCAN_DIR);
}  
不要说填充区域了,连直线也不行

最佳答案

查看完整内容[请看2#楼]

测试了下,一点问题没有.
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-6-13 21:59:05 | 显示全部楼层
测试了下,一点问题没有.

ALIENTEK MINISTM32 实验10 TFTLCD显示实验(FILL函数测试).rar

87.96 KB, 下载次数: 131

我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-6-13 22:42:42 | 显示全部楼层
你测试方法有问题吧.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

8

主题

57

帖子

0

精华

初级会员

Rank: 2

积分
122
金钱
122
注册时间
2014-6-6
在线时间
3 小时
 楼主| 发表于 2014-6-13 23:52:56 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
可以了,我想问问 怎么在一个区域上填充颜色。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-6-14 23:27:01 | 显示全部楼层
回复【3楼】ElecUtopia:
---------------------------------
 这个函数不就是在一个区域填充颜色么?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

8

主题

57

帖子

0

精华

初级会员

Rank: 2

积分
122
金钱
122
注册时间
2014-6-6
在线时间
3 小时
 楼主| 发表于 2014-6-14 23:51:32 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
这个函数真的 只能显示一条直线,不信你在mini版试试。


函数调用方式, 其他函数没问题,就是LCD_Fill(0,200,200,300,RED); 填充不了区域。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-6-15 00:04:28 | 显示全部楼层
回复【5楼】ElecUtopia:
---------------------------------
明天试试
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

8

主题

57

帖子

0

精华

初级会员

Rank: 2

积分
122
金钱
122
注册时间
2014-6-6
在线时间
3 小时
 楼主| 发表于 2014-6-15 00:05:05 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
我贴图了,你看看。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-6-15 10:24:49 | 显示全部楼层
代码:
[mw_shl_code=c,true]//在指定区域内填充指定颜色 //区域大小xend-xsta+1)*(yend-ysta+1) //xsta //color:要填充的颜色 void LCD_Fill(u16 sx,u16 sy,u16 ex,u16 ey,u16 color) { u16 i,j; u16 xlen=0; LCD_Scan_Dir(L2R_U2D); #if USE_HORIZONTAL==1 xlen=ey-sy+1; for(i=sx;i<=ex;i++) { LCD_SetCursor(i,sy); //设置光标位置 LCD_WriteRAM_Prepare(); //开始写入GRAM for(j=0;j<xlen;j++)LCD_WR_DATA(color); //设置光标位置 } #else xlen=ex-sx+1; for(i=sy;i<=ey;i++) { LCD_SetCursor(sx,i); //设置光标位置 LCD_WriteRAM_Prepare(); //开始写入GRAM for(j=0;j<xlen;j++)LCD_WR_DATA(color); //设置光标位置 } #endif LCD_Scan_Dir(DFT_SCAN_DIR); } [/mw_shl_code]

我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

8

主题

57

帖子

0

精华

初级会员

Rank: 2

积分
122
金钱
122
注册时间
2014-6-6
在线时间
3 小时
 楼主| 发表于 2014-6-15 19:09:52 | 显示全部楼层
回复【9楼】正点原子:
---------------------------------
粘贴解决了,不知道什么BUG,不管它了。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-7 04:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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