OpenEdv-开源电子网

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

LCD横屏时代码解析:Xpos=lcddev.width-1-Xpos

[复制链接]

3

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2016-12-13
在线时间
19 小时
发表于 2016-12-20 17:16:39 | 显示全部楼层 |阅读模式
LCD在进行竖屏与横屏转换时会执行如下代码:
if(lcddev.dir==1)Xpos=lcddev.width-1-Xpos;//横屏时处理
  LCD_WR_REG(lcddev.setxcmd);
  LCD_WR_DATA(Xpos>>8);LCD_WR_DATA(Xpos&0XFF);
  LCD_WR_REG(lcddev.setycmd);
  LCD_WR_DATA(Ypos>>8);LCD_WR_DATA(Ypos&0XFF);
  
如何来理解这段代码,首先我们来看看初始状态下的情况是,如图1(黄色部分为显示内容)。

图1

图1

那么在执行代码:Xpos=lcddev.width-1-Xpos ,后状态变为图2,(黄色虚线部分为转换后显示内容)。

图2

图2

最后我们将屏幕横置,形成的效果如图3(黄色部分为最终显示内容)。

图3

图3

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

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2021-11-9
在线时间
6 小时
发表于 2021-12-25 16:30:06 | 显示全部楼层
刘刘先生 发表于 2020-2-20 09:49
老哥  请问你知道为什么还要减1了么

因为坐标是从0开始的,宽度是320,在坐标上表示就是0~319,所以要减1
回复 支持 1 反对 0

使用道具 举报

5

主题

40

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
229
金钱
229
注册时间
2016-7-30
在线时间
82 小时
发表于 2017-2-17 15:14:39 | 显示全部楼层
顶下................
回复 支持 反对

使用道具 举报

13

主题

48

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
233
金钱
233
注册时间
2017-3-23
在线时间
52 小时
发表于 2017-12-20 10:30:54 | 显示全部楼层
还是看不懂,lcddev.width减了Xpos,为什么还要减1呢?,另外横置是怎么横置的呢?
回复 支持 反对

使用道具 举报

0

主题

16

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2020-1-29
在线时间
12 小时
发表于 2020-2-20 09:49:16 | 显示全部楼层
流芷静兰 发表于 2017-12-20 10:30
还是看不懂,lcddev.width减了Xpos,为什么还要减1呢?,另外横置是怎么横置的呢?

老哥  请问你知道为什么还要减1了么
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2022-9-15
在线时间
0 小时
发表于 2022-9-15 20:48:52 | 显示全部楼层
厉害,,。。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-25 05:23

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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