中级会员
 
- 积分
- 431
- 金钱
- 431
- 注册时间
- 2017-9-24
- 在线时间
- 81 小时
|
1金钱
今天对着原子个的驱动程序一点一点的再看spi的写法,在看到这里的时候我发现一个问题,不知道是我还没有理解,还是原子哥的笔误。
//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; //下降沿有效 就是这个地方明明是下降沿有效,但是程序里面这个是从0到1,明明是上升沿啊!但是下载进开发板里面触摸屏还是可以正常触摸显示的。
delay_us(1);
TCLK=1;
if(DOUT)Num++;
}
Num>>=4; //只有高12位有效.
TCS=1; //释放片选
return(Num);
}
请论坛里的好心人帮忙解答一下,谢谢啦!
|
|