熊能 发表于 2025-11-13 16:54:28

ai8051u驱动XPT2046 出现信号异常

软件spi定义


//IO连接
/******* LCD *******/
#defineLCD_DataPortH                P2   //高8位数据口,8位模式下只使用高8位
#defineLCD_DataPortL                P3   //低8位数据口,8位模式下低8位可以不接线

sbit LCD_RS = P1^2;         //数据/命令切换
sbit LCD_WR = P1^1;         //写控制
sbit LCD_RD = P1^0;         //读控制
sbit LCD_CS = P1^3;         //片选
sbit LCD_RESET = P1^4;      //复位
sbit LCD_BL=P1^5;       
/******* Touch *******/
sbit DCLK                =                P1^6;   
sbit TCS                =                P4^7;
sbit DIN                =                P1^7;       
sbit DOUT                =                P1^5;                                                                                                                                                                                  
sbit Penirq                =                P5^1;   //检测触摸屏响应信号

各个端口配置

//DCLK                P1^6        推挽输出
//DIN                P1^7        推挽输出                MOSI
//DOUT                P1^5        高阻输入                MISO
        //P16,P17口设置成高阻输出
        //P15口设置成高阻输入
        //P10 - P15口设置成推挽输出
    P1M0 = 0xdf;
        P1M1 = 0x20;

//TCS                P4^7        推挽输出
        //P47口设置成推挽输出
        P4M0 = 0x80;
        P4M1 = 0x00;

//Penirq        P5^1        高阻输入
        //P51口设置成高阻输入
        P5M0 = 0x00;
        P5M1 = 0x02;

烧入程序
Penirq(P51)出现异常波动

如果此时拔掉DCLK(P1^6)这时Penirq(P51)恢复正常
使用万用表测量DCLK与Penirq之间电阻为20k
实物展示
设备接线

异常触摸效果线条之间会有断触

示例代码

ercircle 发表于 2025-11-14 12:00:14


这毛刺,P51受干扰了吧,离其它信号线远点试试。
可以接个地线麻花一样均匀绞合在重要的信号线上,做成双绞线。
减少线距。
或者降低通讯频率试试

还不行的话立创上打个板吧~

页: [1]
查看完整版本: ai8051u驱动XPT2046 出现信号异常