emWin在STM32上移植OLED驱动问题(3)edit显示,数字显示为被光标覆盖光标为全黑色
2019-04-30 10:43
1286 查看
**
这两天困扰我的问题,emWin调用小工具edit显示,得到焦点后,文本显示被光标覆盖,光标为全黑色。
**
*
后来发现是驱动的问题,每次显示光标的时候,会调用_FillRect(GUI_DEVICE * pDevice, int x0, int y0, int x1, int y1)函数,这个函数用的是正点原子的代码,一直没有怀疑是这块的问题,以为是emwin系统的问题,
static void _FillRect(GUI_DEVICE * pDevice, int x0, int y0, int x1, int y1) { LCD_Fill(x0,y0,x1,y1,LCD_COLORINDEX); }
后来打开emwin的源码一看,不是这样的,前面还有一个异或操作_XorPixel,这个函数对当前像素与黑框异或,就可以反色显示文本了。
static void _FillRect(GUI_DEVICE * pDevice, int x0, int y0, int x1, int y1) { LCD_PIXELINDEX PixelIndex; int x; PixelIndex = LCD__GetColorIndex(); if (GUI_pContext->DrawMode & LCD_DRAWMODE_XOR) { for (; y0 <= y1; y0++) { for (x = x0; x <= x1; x++) { _XorPixel(pDevice, x, y0); } } } else { for (; y0 <= y1; y0++) { for (x = x0; x <= x1; x++) { _SetPixelIndex(pDevice, x, y0, PixelIndex); } } }
吓得我赶紧检查了一下其他底层驱动有没有问题。。。
2019.05.21更新
OLED上使用emwin还是存在很大的问题,比如用厂家给的驱动会刷新慢啊。。。
_FillRect这个区域刷新的函数,还是刷新太慢了,后来把后面的打点函数改了一下,在区域显示,采用芯片的地址自增功能,对屏幕进行批量刷新。简直快的我怀疑人生。。。。。。。
相关文章推荐
- EditText 光标不显示问题
- 关于有时在安卓布局文件中EditText出现文字显示不出来或者光标不显示的问题的解决方案
- android4.0的edittext屏蔽输入法时候光标显示问题
- 有关安卓listView里面多个EditText光标获取及软键盘显示切换消失问题
- 点击EditText 不显示光标 问题解决
- 使用KeyboardView导致EditText光标不显示的问题
- Android的EditText设置光标一直显示而不闪烁的问题
- android4.0的edittext屏蔽输入法时候光标显示问题
- STM32 USB转串口驱动移植到SylixOS中遇到的问题总结
- STM32 USB转串口驱动移植到SylixOS中遇到的问题总结
- EditText光标不显示问题
- STM32的FSMC总线驱动ili9341,掉电重启无法正常显示的问题
- EditText光标不显示问题
- android 一个页面的多个EditText都有光标显示的问题
- STM32 USB转串口驱动移植到SylixOS中遇到的问题总结
- FPGA驱动OLED动态显示(Verilog代码)——向OLED写数据(关键)
- Android之怎么隐藏EditText光标和自动显示键盘
- java 大数字运算结果的显示问题
- 递归问题:Fibonacci序列,分数数列,过河卒,平面分隔问题,棋盘完美覆盖,数字序列
- 解决input[type=number]无法显示非数字字符的问题