[STM32]--关于移植STemwin所遇到的问题记录(2)
2017-08-13 15:51
716 查看
前面说到了完全用我们自己的画点读点函数的直接线性访问 (LIN) 驱动程序,这种方法有个问题会出现偶尔的画面失真,不过大部分情况下还是稳定的,接上回说到还有第二种方法就是间接访问(FlexColor )驱动程序,那这一次就来谈一下这个方法。这个方法对LCD控制器有要求,首先我们看LCD_X_Config 函数的最后一句
这个函数是用来配置总线宽度、缓存用量和硬件程序。
首先看这个函数的官方描述:
这句话里有两个比较关键的点
GUIDRV_FLEXCOLOR_F66708 和 GUIDRV_FLEXCOLOR_M16C0B16 ,前一个参数是选择控制器的,后一个参数是选择位宽等模式的。首先你要看一下你所用的LCD控制器是否在受支持的范围内,如果不支持那就GG了。我的显示器是ILI9341所以我选择了66709这种方式
如果支持的话那就好办了,我们只需要把LCD_X_Config函数 上面的四个函数填充好就可以了,具体的实现方式和我们裸机的读写寄存器的方式基本类似具体可以
写好以后就类似于以下的样子的
还是要再提醒一下,一定要看好你的LCD控制器
根据ST公司的官方测试,这种FlexColor方式和Lin方式的对比,测试的结果如下,但是我实测的时候正好是反过来了,不知道问题出在哪里:
这样就完成了所有的移植。
注意,上面一共提到了两种方法(FlexColor 和 Lin 方法),初学者不要以为我把一种方法分成了两篇来写,造成冲突。
GUIDRV_FlexColor_SetFunc(pDevice, &PortAPI, GUIDRV_FLEXCOLOR_F66708, GUIDRV_FLEXCOLOR_M16C0B16);
这个函数是用来配置总线宽度、缓存用量和硬件程序。
首先看这个函数的官方描述:
这句话里有两个比较关键的点
GUIDRV_FLEXCOLOR_F66708 和 GUIDRV_FLEXCOLOR_M16C0B16 ,前一个参数是选择控制器的,后一个参数是选择位宽等模式的。首先你要看一下你所用的LCD控制器是否在受支持的范围内,如果不支持那就GG了。我的显示器是ILI9341所以我选择了66709这种方式
如果支持的话那就好办了,我们只需要把LCD_X_Config函数 上面的四个函数填充好就可以了,具体的实现方式和我们裸机的读写寄存器的方式基本类似具体可以
static void LcdWriteReg(U16 Data);//写寄存器函数 static void LcdWriteData(U16 Data);//写数据函数 static void LcdWriteDataMultiple(U16 * pData, int NumItems);//写多字节 static void LcdReadDataMultiple(U16 * pData, int NumItems);//读多字节
写好以后就类似于以下的样子的
static void LcdWriteReg(U16 Data) { LCD_WR_REG(Data); } static void LcdWriteData(U16 Data) { LCD_WR_DATA(Data); } static void LcdWriteDataMultiple(U16 * pData, int NumItems) { while (NumItems--) { LCD_WR_DATA(*pData++); } } static void LcdReadDataMultiple(U16 * pData, int NumItems) { while (NumItems--) { *pData++ = LCD_ReadReg(0x22); } }
还是要再提醒一下,一定要看好你的LCD控制器
根据ST公司的官方测试,这种FlexColor方式和Lin方式的对比,测试的结果如下,但是我实测的时候正好是反过来了,不知道问题出在哪里:
这样就完成了所有的移植。
注意,上面一共提到了两种方法(FlexColor 和 Lin 方法),初学者不要以为我把一种方法分成了两篇来写,造成冲突。
相关文章推荐
- [STM32]--关于移植STemwin所遇到的问题记录(1)
- 关于这周工作中遇到的关于缓存问题的记录
- STM32 USB转串口驱动移植到SylixOS中遇到的问题总结
- VC6.0项目移植到VS2010中遇到的问题记录
- 关于正点原子STM32的MDK例程移植到IAR中遇到的错误解决方法 __use_no_semihosting
- STM32 USB转串口驱动移植到SylixOS中遇到的问题总结
- 关于使用ant-design设计可动态添加FormItem的过程中遇到的问题记录。
- 关于工作流项目移植到Oracle9i布署时遇到的问题!
- 关于在2440上移植rtl8192和rtl8188cus linux驱动遇到的问题及解决方法!!!
- 关于LWIP_1.4.1在STM32平台移植后大数据包ping不通问题
- 关于环信导入遇到的相关问题记录
- 关于项目中WebView遇到的问题记录
- 记录IIS7上配置.Net2010的mvc2遇到的jQuery关于ie的Ajax小问题..
- 关于xstream使用过程中遇到的一些问题,记录一下
- [STM32]--关于Keil5移植SDIO不成功的问题
- Tomcat调试ok的代码移植到Weblogic11g(server10.3.3),遇到的问题解决记录。
- 关于DataGridView 使用中遇到的问题记录
- [OpenGL]移植OpenGL项目遇到的问题记录
- 关于在使用(function(){})();中遇到的问题的记录
- 关于jquery全选和取消全选遇到的只能选一次问题记录