硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4562|回复: 3
收起左侧

[有问必答] 关于RA8875触摸无作用

[复制链接]

35

主题

80

回帖

185

积分

初级会员

积分
185
发表于 2017-3-15 10:31:19 | 显示全部楼层 |阅读模式
用RA8875自带的触摸调试无反应;不知道什么问题引起的;

主函数为触摸的初始化:

int main (void)
{
   NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
  delay_init(168);  //初始化延时函数
  uart_init(115200);//初始化串口波特率为115200
  bsp_InitSPIBus();    /* 配置SPI总线 */
  LCD_InitHard();
  TOUCH_InitHard();
  RA8875_DispBmpInFlash(0, 0, 480, 800, g_RA8875Addr_800x480[2]);        
  while(1)
  {
    TOUCH_Scan();
      delay_ms(1000);            
  }
}
其中TOUCH_InitHard();函数为:
void TOUCH_InitHard(void)
{   
    g_tTP.Enable = 0;
    g_tTP.Write = g_tTP.Read = 0;
     
    RA8875_TouchInit();
    g_tTP.usMaxAdc = 1023;    /* 10位ADC */
    TOUCH_LoadParam();    /* 读取校准参数 */
    g_tTP.Write = g_tTP.Read = 0;
    g_tTP.Enable = 1;   
}



void RA8875_TouchInit(void)
{   
    RA8875_WriteReg(0xF0, (1 << 2));    /* 开启触控面板中断位 */
    /*
        REG[71h] Touch Panel Control Register 1 (TPCR1)

        Bit7 N/A
        Bit6 触控面板模式设定
            0 : 自动模式。
            1 : 手动模式。
        Bit5 触控面板控制器ADC 参考电压(Vref)来源设定
            0 : 内部产生参考电压。
            1 : 外部输入参考电压,ADC 参考电压准位= 1/2 VDD。
        Bit4-3 N/A
        Bit2 触控中断讯号的消除弹跳电路选择
            0: 关闭消除弹跳电路。
            1: 开启消除弹跳电路。
        Bit1-0 触控面板手动模式之选择位
            00b : 闲置模式。触控控制单元进入闲置模式。
            01b : 侦测触摸事件发生。在此模式控制器会侦测触摸事件的发
                生,事件发生可以引发中断或是由缓存器得知(REG[F1h]
                Bit2)。
            10b : X 轴数据撷取模式。在此模式触摸位置的X 轴数据会被储
                存至 REG[72h] 和REG[74h]。
            11b : Y 轴数据撷取模式。在此模式触摸位置的Y 轴数据会被储
                存至REG[73h] and REG[74h]。
    */
    RA8875_WriteReg(0x71, (0 << 6) | (0 << 5) | (1 << 2));    /* 选择自动模式 */
    /*
        REG[70h] Touch Panel Control Register 0 (TPCR0)

        Bit7 触控面板功能设定
            0 : 关闭。
            1 : 开启。
        Bit6-4 触控面板控制器取样时间设定
            000b : ADC 取样时间为512 个系统频率周期。
            001b : ADC 取样时间为 1024 个系统频率周期。
            010b : ADC 取样时间为 2048 个系统频率周期。
            011b : ADC 取样时间为 4096 个系统频率周期。
            100b : ADC 取样时间为 8192 个系统频率周期。
            101b : ADC 取样时间为 16384 个系统频率周期。
            110b : ADC 取样时间为 32768 个系统频率周期。
            111b : ADC 取样时间为65536 个系统频率周期。
        Bit3 触控面板唤醒模式
            0 : 关闭触控事件唤醒模式。
            1 : 触控事件可唤醒睡眠模式。
        Bit2-0 触控面板控制器ADC 频率设定
            000b : 系统频率。
            001b : 系统频率 / 2。
            010b : 系统频率 / 4。
            011b : 系统频率 / 8。
            100b : 系统频率 / 16。
            101b : 系统频率 / 32。
            110b : 系统频率 / 64。
            111b : 系统频率 / 128。

        注 : ADC 的输入频率设定不能超过10MHz。
    */
    RA8875_WriteReg(0x70, (1 << 7) | (3 << 4) | (0 << 3) | (2 << 0));    /* 开启触摸功能; */
}
在RA8875_TouchReadX的函数中读取到的F1寄存器值为0x0B,感觉没有进入触摸中断,这个中断应该是RA8875产生的啊,不需要用到TP_INT引脚,奇怪为啥进入不了中断呢?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
发表于 2017-3-15 10:41:49 | 显示全部楼层
多试试。
回复

使用道具 举报

35

主题

80

回帖

185

积分

初级会员

积分
185
 楼主| 发表于 2017-3-15 13:29:19 | 显示全部楼层
刚问了armfly买的7寸电容屏用的是GT811芯片;
回复

使用道具 举报

35

主题

80

回帖

185

积分

初级会员

积分
185
 楼主| 发表于 2017-3-17 16:36:34 | 显示全部楼层
初始化GT811函数添加到里面
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-16 10:19 , Processed in 0.039071 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表