OpenEdv-开源电子网

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

【触摸屏SPI读数据】问题

[复制链接]

5

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2013-3-20
在线时间
0 小时
发表于 2013-4-17 14:26:10 | 显示全部楼层 |阅读模式
看原子哥写的触摸屏程序,有两个不清楚的地方:
1.SPI读写数据是不是分着硬件SPI跟软件SPI?
     看金龙写的程序好像是用硬件SPI模式,原子哥用的是IO模拟SPI,不知道这么理解对不对?
2.原子哥的程序TP_Read_AD这个函数里,Num还没有赋值,就有这么一句 Num<<=1;  ,求解释啊。。。 下边是程序


//SPI读数据
//从触摸屏IC读取adc值 
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         
 TCLK=0;           
 for(count=0;count<16;count++)//读出16位数据,只有高12位有效
 {      
  Num<<=1;  
  TCLK=0; //下降沿有效          
  TCLK=1;
  if(DOUT)Num++;   
 }   
 Num>>=4;    //只有高12位有效.
 TCS=1;  //释放片选 
 return(Num);  
}
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-4-17 15:08:11 | 显示全部楼层
回复【楼主位】南瓜落落:
---------------------------------
1,软硬都可以,我们用的软件模拟SPI.
2,这句在第一次的时候,没有作用,0<<1,等于没移,但是后续会起到作用.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

5

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2013-3-20
在线时间
0 小时
 楼主| 发表于 2013-4-17 15:28:02 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
了解了,把原子哥的程序改动后,用到另一个板子上,就出现这么一句警告:Num may be used before being set
原子哥知道可能是什么问题吗?

unsigned short ReadADCData(void)
{
  unsigned char  i;
  unsigned short  Num;
 
  for(i=0;i<12;i++)
  {
    Num<<=1;
    TOH_CLK_HIGH();//下降沿有效

    TOH_CLK_LOW();
    if(GPIO_ReadInputDataBit(TOH_GPIO,TOH_DOUT))
      Num++;
  }
  return(Num); 
}
回复 支持 反对

使用道具 举报

6

主题

153

帖子

0

精华

初级会员

Rank: 2

积分
197
金钱
197
注册时间
2013-4-4
在线时间
0 小时
发表于 2013-4-17 16:05:13 | 显示全部楼层
这个警告可以无视 
想要消除可以给Num赋初值0
~~~~ 欢迎讨论,拒绝谩骂 ~~~~
回复 支持 反对

使用道具 举报

54

主题

1008

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2385
金钱
2385
注册时间
2012-11-22
在线时间
403 小时
发表于 2013-4-17 16:11:40 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
原子哥,如果软件模拟,只要是IO口就行了吧?
态度决定一切
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-4-17 19:30:09 | 显示全部楼层
回复【3楼】南瓜落落:
---------------------------------
必须先初始化为0.
回复【5楼】冰封嗜魔:
---------------------------------
嗯.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

3

主题

7

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2013-8-23
在线时间
0 小时
发表于 2013-10-2 00:26:40 | 显示全部楼层
回复【2楼】正点原子:
那为什么IO模拟spi往触摸屏写数据时 就简单的那么几行  好像没有完全按照时序来写
回复 支持 反对

使用道具 举报

24

主题

95

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
211
金钱
211
注册时间
2014-3-15
在线时间
0 小时
发表于 2014-5-13 13:25:27 | 显示全部楼层
回复【7楼】奔跑的蜗牛:
---------------------------------
因为写数据的代码是调用的,时序已经在前面的代码中写好了!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-5-13 22:46:41 | 显示全部楼层
回复【7楼】奔跑的蜗牛:
---------------------------------
就是按时序来的...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-8 02:13

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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