OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4100|回复: 2

请问,为什么我的电阻式触摸屏会出现怎么奇怪的情况。

[复制链接]

2

主题

2

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2022-3-13
在线时间
9 小时
发表于 2022-4-13 22:22:07 | 显示全部楼层 |阅读模式
10金钱
请问为什么我的电阻式显示屏会出现这种情况呢?
屏幕的型号是:3.95inch Arduino Display-Mega2560
驱动IC:ILI9488
触摸转换IC:ADS7846
具体参数: 1.png


故障表现:

故障

故障

画线区域,当X轴或Y轴超2048后,不变一直等到离开画线区域后才变化。触摸效果仿佛是把四块大小不一的屏幕缝合到一起一样,显示效果正常。
不用emWin,使用串口读取也是样子:
void Touch_Task(void){
    int temp_x,temp_y;
    while(1){
        temp_x = TP_read_ad(0x90);
        temp_y = TP_read_ad(0xd0);
        printf("X:%d,Y:%d\r\n",temp_x,temp_y);
        vTaskDelay(10);
    }
}

我写的驱动:
#define CS_1 GPIOE -> BSRR = GPIO_PIN_2
#define CS_0 GPIOE -> BSRR = (GPIO_PIN_2<< 16)

#define CLK_1 GPIOE -> BSRR = GPIO_PIN_3
#define CLK_0 GPIOE -> BSRR = (GPIO_PIN_3<< 16)

#define DIN_1 GPIOE -> BSRR = GPIO_PIN_5
#define DIN_0 GPIOE -> BSRR = (GPIO_PIN_5<< 16)

#define DOUT HAL_GPIO_ReadPin(GPIOE,GPIO_PIN_4)

#define  TP_IRQ HAL_GPIO_ReadPin(GPIOE,GPIO_PIN_6)


void write_cmd(uint8_t cmd){
    CLK_0;
    for(int i = 0;i <8;i++){
        if(cmd&0x80){
            DIN_1;
        }
        else{
            DIN_0;
        }
        cmd <<= 1;
        CLK_0;
        delay_us(1);
        CLK_1;
    }

}


uint16_t read_ad(void){
    uint16_t temp;
    for(int i = 0;i<16;i++){
        temp <<= 1;
        CLK_0;
        delay_us(1);
        CLK_1;
        if(DOUT){
            temp++;
        }
    }
    return temp;
}


uint16_t TP_read_ad(uint8_t cmd){
    uint16_t value;
    uint8_t temp;
    CLK_0;
    DIN_0;
    CS_0;
   
    write_cmd(cmd);
    delay_us(6);
    CLK_0;
    delay_us(1);
    CLK_1;
    delay_us(1);
    CLK_0;
   
    value = read_ad();
    value >>= 4;
    CS_1;
    return value;
}





正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

14

主题

821

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2070
金钱
2070
注册时间
2021-7-17
在线时间
647 小时
发表于 2022-4-14 10:13:32 | 显示全部楼层
是不是坐标没有设置对
回复

使用道具 举报

13

主题

643

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2432
金钱
2432
注册时间
2019-12-28
在线时间
527 小时
发表于 2022-4-14 10:53:55 | 显示全部楼层
电阻式触摸屏是需要校准触摸才会准的,你可以参考下原子的电阻触摸屏的例程,校准下这个屏幕应该会好不少
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-25 21:29

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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