首页 新闻 会员 周边

【单片机AD转换】XPT2046输入命令数据后延时等待转换结果的问题

0
[待解决问题]

一直很想问怎么看时序图,xpt2046的时序图中,从DIN送入命令数据的部分后面并有看到需要延时的部分,准确的说我只看到了一个空白的时钟周期,然后就是读数据了,为什么代码中需要在对DIN输入数据后进行延时等待转换结果呢?另外,要如何才能知道需要延时多久?

复制代码
void SPI_Write(uchar dat)
{
    uchar i;
    CLK = 0;
    for(i=0; i<8; i++)
    {
        DIN = dat >> 7;      //放置最高位
        dat <<= 1;
        CLK = 0;            //上升沿放置数据

        CLK = 1;

    }
}


uint SPI_Read(void)
{
    uint i, dat=0;
    CLK = 0;
    for(i=0; i<12; i++)        //接收12位数据
    {
        dat <<= 1;

        CLK = 1;
        CLK = 0;

        dat |= DOUT;

    }
    return dat;    
}


uint Read_AD_Data(uchar cmd)
{
    uchar i;
    uint AD_Value;
    CLK = 0;
    CS  = 0;
    SPI_Write(cmd);
    for(i=6; i>0; i--);     //延时等待转换结果
    CLK = 1;      //发送一个时钟周期,清除BUSY
    _nop_();
    _nop_();
    CLK = 0;
    _nop_();
    _nop_();
    AD_Value=SPI_Read();
    CS = 1;
    return AD_Value;    
}
复制代码
NoDense的主页 NoDense | 初学一级 | 园豆:199
提问于:2017-06-26 20:30
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册