OpenEdv-开源电子网

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

请教下电阻屏的读取AD值函数。为啥是发了25个clk?

[复制链接]

42

主题

115

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
202
金钱
202
注册时间
2019-8-20
在线时间
86 小时
发表于 前天 10:22 | 显示全部楼层 |阅读模式
20金钱
从例程代码看,写入命令发了8个CLK,然后一个busy发了1个,随后16个CLK,但是看时序图只有24个CLK啊,
//SPI写数据
//向触摸屏IC写入1byte数据   
//num:要写入的数据
void TP_Write_Byte(u8 num)   
{  
        u8 count=0;   
        for(count=0;count<8;count++)  
        {           
                if(num&0x80)TDIN=1;  
                else TDIN=0;   
                num<<=1;   
                TCLK=0;
                delay_us(1);
                TCLK=1;                //上升沿有效                
        }                                             
}                  
//SPI读数据
//从触摸屏IC读取adc值
//CMD:指令
//返回值:读到的数据          
u16 TP_Read_AD(u8 CMD)          
{          
        u8 count=0;           
        u16 Num=0;
        TCLK=0;                //先拉低时钟          
        TDIN=0;         //拉低数据线
        TCS=0;                 //选中触摸屏IC
        TP_Write_Byte(CMD);//发送命令字
        delay_us(6);//ADS7846的转换时间最长为6us
        TCLK=0;                          
        delay_us(1);              
        TCLK=1;                //给1个时钟,清除BUSY
        delay_us(1);   
        TCLK=0;                          
        for(count=0;count<16;count++)//读出16位数据,只有高12位有效
        {                                   
                Num<<=1;          
                TCLK=0;        //下降沿有效                        
                delay_us(1);   
                TCLK=1;
                if(DOUT)Num++;                  
        }         
        Num>>=4;           //只有高12位有效.
        TCS=1;                //释放片选         
        return(Num);   
}

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

使用道具 举报

12

主题

3370

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8579
金钱
8579
注册时间
2020-5-11
在线时间
3993 小时
发表于 前天 13:10 | 显示全部楼层
即然有所怀疑,那就大胆的去尝试
专治疑难杂症
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-4-3 03:23

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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