请教模拟SPI读93C46的问题

[复制链接]
2675|6
 楼主| lilyzz2000 发表于 2011-10-31 16:21 | 显示全部楼层 |阅读模式
请教高手,为什么读93C46的数据时,检测不到DO位虚0的时候,DO始终是高电平,读函数返回的值一直是0XFFFF.两天都没找出问题所在,请大家赐教。谢谢。
uint read(uchar add)
{
uchar i;
uint rtemp;
CS=1;
comm(0x01);
comm(add|0x80);
RBPU=0;//开启RB5上拉,DO为RB5
TRISB5=1;
CS=1;
while(DO)
{
  CLK=0;CLK=1;
}
for(i=0;i<16;i++)
{
  CLK=0;
  NOP();
  rtemph=rtemph<<1;
  if(DO) rtemph|=0x01;
  CLK=1;
  NOP();NOP();
}
CS=0;
return(rtemph);
}
 楼主| lilyzz2000 发表于 2011-10-31 23:00 | 显示全部楼层
读数据开始没有DO=0的情况,所以读出来都是0XFFFF,什么原因,请赐教。
asspeed 发表于 2011-11-1 09:03 | 显示全部楼层
写的乱七八糟。如果不知道如何模拟微线协议,去Microchip网站上查AN993,AN1020...
yewuyi 发表于 2011-11-2 12:21 | 显示全部楼层
呵呵,一般都不愿意看,SPI都要标准范例代码,自己去网络上查吧
谈的元 发表于 2011-11-2 18:50 | 显示全部楼层
有使能等命令。看看文档吧
 楼主| lilyzz2000 发表于 2011-11-4 16:54 | 显示全部楼层
谢谢,那看看文档再讨论
xaq79 发表于 2011-11-15 11:12 | 显示全部楼层
按照SPI规范做就是了,别人看你程序很头疼的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

12

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部