发新帖我要提问
12
返回列表
打印

XPT2046触摸屏的读数一直为FFF,求助?

[复制链接]
楼主: fengye5340
手机看帖
扫描二维码
随时随地手机跟帖
21
hawksabre| | 2013-6-5 18:41 | 只看该作者 回帖奖励 |倒序浏览
问题解决了   就好   不错   多多努力   顶一个

使用特权

评论回复
22
jiayongli| | 2013-8-15 15:23 | 只看该作者
哈哈,彼此彼此

使用特权

评论回复
23
yuezhongliang| | 2016-2-12 16:53 | 只看该作者
你好 我用的XPT2046 能帮我查一下程序吗?我读出来的 不是全高就是全低 BUSY信号也是常高

void XPT2046_Configuration(void)
{
        GPIO_InitTypeDef  GPIO_InitStructure;

        //GPIOA Periph clock enable
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE);


        //XPT2046:  BUSY: PB5  MOSI: PB6 IRQ: PB8
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_8;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   //复用推挽输出GPIO_Mode_IPD;//
        GPIO_Init(GPIOB,&GPIO_InitStructure);

        //XPT2046:  BUSY: PB5  MOSI: PB6 IRQ: PB8
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 ;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;   //
        GPIO_Init(GPIOB,&GPIO_InitStructure);

        //XPT2046:  clk: PD3  CS: PD4  MOSO: PD5
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //GPIO_Mode_AF_PP;   //复用推挽输出
        GPIO_Init(GPIOD,&GPIO_InitStructure);

        XPT2046_CS_HIGH()  ;//XPT2046_CS_LOW();
}




u16 SPI_WriteByte(u8 in_data)
{  
    u8 i=0,x=0;
    u16 out_Data = 0;
    XPT2046_CS_LOW();
    XPT2046_CLK_LOW();
        x=in_data;  
    for(i=0;i<8;i++) // 发送1字节读取命令
    {       

        if(in_data&0x80)
        XPT2046_MOSO_HIGH();
        else XPT2046_MOSO_LOW();
        in_data<<=1;
            XPT2046_CLK_LOW();
                SpiDelay(200);   
        XPT2046_CLK_HIGH();
                SpiDelay(200);
    }

    XPT2046_CLK_LOW();
    SpiDelay(200);
    XPT2046_CLK_HIGH();
        SpiDelay(200);  

       
       
               
    for(i=0;i<16;i++) // 接收2字节结果
    {                  
        out_Data<<=1;      
        XPT2046_CLK_LOW();
                SpiDelay(200);                  
        XPT2046_CLK_HIGH();
        if( XPT2046_GET_MOSI())out_Data=out_Data|0x01;
                SpiDelay(200);         
    }      
    out_Data>>=4;  // 结果右移4位,获取高12位有效数据        
    XPT2046_CS_HIGH();


  return out_Data;
}

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则