G2553用io模拟spi读MAX6675程序求助

[复制链接]
503|2
手机看帖
扫描二维码
随时随地手机跟帖
libai233|  楼主 | 2017-4-24 21:12 | 显示全部楼层 |阅读模式
本帖最后由 libai233 于 2017-4-24 22:22 编辑

用G2553的io口模拟spi读MAX6675的温度值,但是读出来一直是0,不知道是硬件问题还是软件问题,求大神解答..
硬件方面P2.0接DO,P2.1接CLK,P2.2接CS,程序如下:
uint read_spi(void)//spi读16位
{
  
  P2DIR &= ~BIT0;
  P2DIR |=BIT1+BIT2;

  P2OUT|=BIT2;//拉高片选开始转换
   __delay_cycles (524288);
  P2OUT&=~BIT2;//拉低片选开始读数
  P2OUT|=BIT1;//sck上升沿
  __delay_cycles (524288);
  uchar i;
  uint data=0;
  for(i=0;i<16;i++);
  {P2OUT&=~BIT1;//sck下降沿
__delay_cycles (524288);
  if(P2IN&BIT0)//判断收到电平
  {data<<=1;
   data=data+BIT0;
  }
  else data<<=1;
  P2OUT|=BIT1;//sck上升沿
  __delay_cycles (524288);
  }
  data<<=1;
  data>>=4;
  
  return data ;
  }

相关帖子

libai233|  楼主 | 2017-4-24 21:19 | 显示全部楼层
T_T求大神帮忙....

使用特权

评论回复
vibra2016| | 2017-4-29 13:29 | 显示全部楼层
这个还是配置的问题的吧,,但从这个代码上看是没有啥问题的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

9

帖子

0

粉丝