专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
STM32
LCD 填充颜 {MOD}块问题
2019-07-20 10:54
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
STM32/STM8
5316
6
1796
有个函数 LCD_Color_Fill。。在指定区域内填充指定颜 {MOD}块。 为什么 只能填充 正方形的区域比如 200×200 的 如果填充 长方形区域 200×300 的话 就无法正常显示出来了。
问题 已经解决:
代码中的 color[i*width+j] 不知道为什么我写成
color[i*height+j] 了。。。
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
幽灵骑士
2019-07-20 19:43
[mw_shl_code=c,true]//在指定区域内填充指定颜 {MOD}块 //(sx,sy),(ex,ey):填充矩形对角坐标,区域大小为
ex-sx+1)*(ey-sy+1) //color:要填充的颜 {MOD} void LCD_Color_Fill(u16 sx,u16 sy,u16 ex,u16 ey,u16 *color) { u16 height,width; u16 i,j; width=ex-sx+1; //得到填充的宽度 height=ey-sy+1; //高度 for(i=0;i<height;i++) { LCD_SetCursor(sx,sy+i); //设置光标位置 LCD_WriteRAM_Prepare(); //开始写入GRAM for(j=0;j<width;j++)LCD->LCD_RAM=color[i*height+j];//写入数据 } } [/mw_shl_code] [mw_shl_code=c,true]//读取个某点的颜 {MOD}值 //x,y:坐标 //返回值:此点的颜 {MOD} u16 LCD_ReadPoint(u16 x,u16 y) { u16 t=0; LCD_SetCursor(x,y); while(t<0X1FFF) { if(LCD->LCD_REG&0x0001)break; t++; } return LCD->LCD_RAM; }[/mw_shl_code] 读取 200*300 区域的点数据。
[mw_shl_code=c,true] for(y=0;y<300;y++) { for(x=0;x<200;x++) { rg
=LCD_ReadPoint(lcddev.width/2-150+x,lcddev.height/2-100+y); i++; } }[/mw_shl_code] 显示 读取的 数据 : 读取和显示200×200 的数据都正常。也试过 100×200 的也是不行。
注: rg 是个很大的数组 可以完全存的下 300×300 的数据/『内存大任性』
[mw_shl_code=c,true]LCD_Color_Fill(lcddev.width/2-150,lcddev.height/2-100,lcddev.width/2-150+299,lcddev.height/2-100+199,rg);[/mw_shl_code]
加载中...
查看其它6个回答
一周热门
更多
>
相关问题
STM32F4上I2C(在PROTEUS中模拟)调试不通的问题
6 个回答
芯片供应紧张,准备换个MCU,MM32L系列替换STM32L系列的怎么样?
7 个回答
STM32同时使用两个串口进行数据收发时数据丢包的问题
5 个回答
STM32F103串口通信死机问题
4 个回答
STM32WLE5CC连接SX1268在LoRa模式下能与 SX1278互通吗?
2 个回答
相关文章
ST公司第一款无线低功耗单片机模块有效提高物联网设计生产效率
0个评论
如何实现对单片机寄存器的访问
0个评论
通过USB用STM32片内自带Bootloader下载程序及注意事项
0个评论
欲练此功必先自宫之STM32汇编启动,放慢是为了更好的前行
0个评论
×
关闭
采纳回答
向帮助了您的知道网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
STM32
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
×
付费偷看金额在0.1-10元之间
确定
×
关闭
您已邀请
0
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
[mw_shl_code=c,true] for(y=0;y<300;y++) { for(x=0;x<200;x++) { rg=LCD_ReadPoint(lcddev.width/2-150+x,lcddev.height/2-100+y); i++; } }[/mw_shl_code] 显示 读取的 数据 : 读取和显示200×200 的数据都正常。也试过 100×200 的也是不行。
注: rg 是个很大的数组 可以完全存的下 300×300 的数据/『内存大任性』
[mw_shl_code=c,true]LCD_Color_Fill(lcddev.width/2-150,lcddev.height/2-100,lcddev.width/2-150+299,lcddev.height/2-100+199,rg);[/mw_shl_code]
一周热门 更多>