项目中要实现竖屏横放,请高手赐教
时间:10-02
整理:3721RD
点击:
项目中要实现竖屏横放,请高手赐教,不胜感激。
本人想过用修改刷屏数据方向的方法去改。然后涉及到刷屏数据寄存器的修改和blockwrite函数的改写。但是一直会出现花屏的现象。是不是因为MMI层的关系?是否mmi层的资源一定要改?[
本人想过用修改刷屏数据方向的方法去改。然后涉及到刷屏数据寄存器的修改和blockwrite函数的改写。但是一直会出现花屏的现象。是不是因为MMI层的关系?是否mmi层的资源一定要改?[
首先,你要修改刷屏方向和起点,也可以称作刷屏坐标,把一个坐标换算到另一个坐标系中即可,在各个lcd的IC对应的spec中有详细描述,有一个寄存器的三个位来控制,一般是AM位,ID1和ID0,默认设置是从上到下,从左到右,也就是(unsigned long int left,unsigned long int top)是默认起点你把坐标系旋转90度或者270度即可,这要看你应用的屏方向;
控制刷屏方向的寄存器可能是0x36,或0x03或者搜索Entry mode,你可以找到的;240*320的,如果你旋转90度,那么对应的坐标由原来的(top,left,right bottom)变成了(319-top,right,319-bottom,left),至于如何把这个坐标写到寄存器中,很简单了吧,呵呵
横屏竖用也就是修改两个地方而已,
第一个方向设置简单,第二个需要计算坐标,
从blockwrite()来看,你用的是MTK平台,在展讯中调节更简洁,不知道我有没有给你讲明白
这个MTK本身已经支持270度旋转,90度旋转一般不符合显示习惯。跟驱动其实没有什么关系。
MMI生成一块数据,把这个数据刷到LCD上去,只要转换一下坐标就好了-mtk gdi刷新时已经调整好了坐标,即将横屏显示的数据转换为竖屏,也就是说跟驱动没啥关系