max6675程序问题

2019-03-24 18:40发布

以下是网上的一个程序,感觉最低位D0没有读到,因为MAX6675是在下降沿读取数据的,不知道我说的对不对?
void delay_us(uchar m)
{
  while(m--);
}

uint Read_6675()
{
  uchar i=0;
  uint temp=0;
  uint dat6675=0;
//-------------
  //接口初始化
  CS=1;  
  SCK=0;
  delay_us(10);
//--------------  

  CS=0;
  delay_us(10);
  //获取16位数据
  for(i=0;i<16;i++)
  {         
   SCK=1;  
   temp=temp<<1;
   if(SO==1)
    temp=temp|0x01;
   SCK=0;
   delay_us(10);
  }
  CS=1;
//---------------
//取出其中12位温度数据  
  temp=temp<<1;
  temp=temp>>4;
  dat6675=temp;
//---------------
  return dat6675;
} 此帖出自小平头技术问答
0条回答

一周热门 更多>