RA8875 触屏控制

在网上看到不少人反映RA8875的触摸屏界面并不好用,并有不少人反映根本用不了的情况的。过年无聊在玩STM32F407和一个RA8875为核心的7寸屏幕的时候也遇到了不少的问题,就写出来跟大家分享一下。
1、RA8875的触摸屏自动模式:
    if (EnableTouchScreen)
    {               
        LCD_WriteReg(0x70,0x84);                                    //配置ADC
        LCD_WriteReg(0x71,0x05);                                    //启用自动模式,消去机械振动
        LCD_WriteReg(0xF0,0x04);                                    //开启屏幕触摸中断
    }
上面的代码能开启触摸屏自动模式。需要注意,当触摸事件发生并采样后,需要进行如下的操作
LCD_WriteReg(0xf1, 0x04);                                   //清除中断标志位
在清除了中断之后,RA8875才会又检测触摸事件,否则读取0x72~0x74的寄存器的值是不会改变的,中断也不会响应了。
2、RA8875的中断模式:
这时困惑我很久的一个问题,因为我安装上面的配置做好了程序之后,触摸事件并不会拉低中断脚。经过多次参考别人的程序之后,发现我比其他人多了一步:
SCREEN.WriteText(LCD_COLOR_BLUE,LCD_COLOR_GREEN,true,LCD_TEXT_4x,"abcdefg");
这个是我用C++写的一个类,作用是使用RA8875的文字功能在屏幕上输出字符串。代码中有一段:
LCD_WriteReg(0x40, 0xe0); 
这段代码使得RA8875进入了文字模式,而非位图模式。实际上,我将文字输出屏蔽之后,一切就正常了。这表明,RA8875在文字模式下,触摸触摸屏是不会拉低INT脚的。为了解决问题,我在WriteText最下面加了一句
LCD_WriteReg(0x40, 0x00);
重新使得RA8875回到位图模式,就可以正常使用了。
但实际上,使用自动模式的效果并不是太理想。实际程序运行的时候,当手指按到屏幕上会触发多次的触摸事件,但并不是每次的坐标都是正确的,特别是松手的时候,干扰特别大。所以使用触摸中断+扫描的方式或许是比较好的一个选择,这需要在软件上使用一个中值滤波器。
RA8875 是一个文字与绘图模式的双图层液晶显示 (TFT-LCD) 控制器,可结合文字或2D图形应用,最大可支持到800*480 点分辨率的中小尺寸数字面板。内建 768KB 显示内存可提供大多数使用者的应用一个更弹性的解决方案。此外,使用者可藉由选用外部串行式Flash 接口,支持BIG5/GB 编码,可提供最大达32*32 像素之的字型输入。在图形的使用上,RA8875 支持2D 的BTE 引擎 (Block Transfer Engine),此功能兼容于一般通用的2D BitBLT 功能,可处理大量图形数据转换与传送。同时RA8875 也内建几何图形加速引擎 (Geometric Speed-up Engine),提供使用者透过简单的设定轻松画出直线、矩形、圆形和椭圆的几何图形。为了贴近终端始用者的应用,RA8875 整合了强大的功能,如画面卷动功能、显示浮动窗口、图形Pattern 及文字放大等功能,可大量节省使用者软件开发的时间,并提升MCU软件的执行效率。 RA8875 提供低成本的 8080/6800 并列式MCU 接口,由于内建强大的硬件加速功能,可降低数据传输所需的时间并且改善效率。RA8875提供串行式 SPI/I2C 等极少量脚位的界面,内建 4-wire 的触控面板控制器,以及2组脉波宽度调变 (PWM),可用于调整面板背光或其它应用。相对于其它的解决方案,RA8875 是一个功能强大及低成本的彩色TFT 控制器,让使用者顺利解决软硬件开发上的疑虑,同时达成低成本、 高效能的系统方案。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值