你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

关于STM32FSMC驱动液晶屏的问题,弄了很久了始终不理解

[复制链接]
qdhf 提问时间:2019-1-26 15:17 /
是这样的,图片中注释部分是我自己写的,未注释部分是例程中的代码。然后第二个图片呢,是液晶屏驱动芯片手册中关于坐标高位低位的说明。
我的液晶屏是3.6寸的 240*400(例程中最大是这么大)。
问题描述:我自己写的也就是注释部分代码,是液晶屏输入起始坐标X0与终止坐标X1  Y轴同理,然后出现颜色矩形窗口的一个子函数。但是我自己写的这个无法全屏显示,最多也就能够将窗口设置成240*250大小,Y轴再继续加大数值的话,窗口会变到最小(就像是超过了250就重头开始的意思)。但是例程的这部分代码做替换后,就可以正常240*400全屏显示。我最想要问的问题是,例程中为什么要/256  %256呢,这样是怎么发送0000 0001和1111 1111的呢?诚心的希望了解的人做出一个回答,困扰了好久了

QQ图片20190126150855.png
QQ图片20190126150902.png
收藏 评论5 发布时间:2019-1-26 15:17

举报

5个回答
qdhf 回答时间:2019-1-26 15:24:21
如果将例程部分的代码  用位 & 、| 该怎么表示呢
aiherong 回答时间:2019-1-26 21:42:40
取余你的代码可行,但取整你的代码实现有误,之所以要先传整再传余这和显存页段有关,用与非实现取整运算:如X0=0x1234;取高8位,先X0&=0xff00;再X0>>8;得到X0=0x12;
对1111,1111取整时是0,但取余时得到0xff,不存在问题

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

yubinwu_3004964 回答时间:2019-1-26 22:20:48
感觉高位应该类似(x0>>8)&0x01

评分

参与人数 1蝴蝶豆 +1 收起 理由
STMCU + 1

查看全部评分

七哥 回答时间:2019-1-27 00:27:06
本帖最后由 toofree 于 2019-1-27 00:31 编辑

你这里的x0、x1等都是16位数据。得分两次发送。
x0/256 等效于  x0 >> 8 ,即取高8位(实际用的数有可能就最低一位有效);
x0%256 等效于 x0 & 0xff

你注释掉的程序,是逻辑错误。实在要用的话,应该是 (x0>>8) & 0x01。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

aiherong 回答时间:2019-1-27 14:07:39
这里正好256等于0xff,实际取整可以任意,比如:5/2取整=2,取余5%2=1,补充说明一下以免误导概念可能不太明朗的坛友,而在这儿的问题恰好就相当于取高8位与低8位之分,取高8位直接右移8位就可以了,不用再"&0x01",否则又变成取高8位的最低位了。

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版