找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1146|回复: 2
打印 上一主题 下一主题
收起左侧

小白求助AD芯片XPT2046时序问题?

[复制链接]
跳转到指定楼层
楼主

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 SPI_Read(void)
{
        uint i, dat=0;
        CLK = 0;
        for(i=0; i<12; i++)               
        {
               dat <<= 1;
               dat |= DOUT;
               
                CLK = 1;
                CLK = 0;

        }
        return dat;        
}

这个是AD芯片 Xpt2046 时序如下
这样写有什么区别,结果显示不正常?
现在CLK=1;CLK=0; 我这有写 显示结果就不对了,一直搞不明白这个时序,为什么要读时候放中间可以 ,我这样写在结果就不对?

              

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:161164 发表于 2021-8-26 09:16 | 只看该作者
CLK是用来带节奏的
让对方准备好数据让单片机读取
你的写法就变成了:
老师(单片机):答案是什么
学生(SPI):???
老师:1+1=?
回复

使用道具 举报

板凳
ID:401564 发表于 2021-8-26 20:07 | 只看该作者
CLK是时钟
dat |= DOUT;位置都不一样的,位移出来的数据肯定也是不一样的
CLK每一个时钟输出一个数据位,自己看一下数据手册
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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