This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSP430G2553模拟温湿度传感器SHT的IIC通信时序



 

上图是SHT15的时序要求,我找了一些关于430模拟IIC通信的程序,比如其中的SHT15的启动程序是这样的

/*SHT15的启动程序要求是:当SCK时钟高电平时DATA翻转为低电平,紧接着SCK变为低电平,随后是在SCK时钟高电平时DATA翻转为高电平*/

#define SHT11_SCK    P1OUT       //在接下来的程序里,sck=p1.0,sda=p1.1

#define SHT11_DATA   P1OUT

void SHT15_Start()

{

   SHT15_SCK|=0X01;   //sck=1

   SHT15_DATA|=0X02;  //sda=1

   __delay_cycles(5);      //延时

  SHT15_DATA&=0xfd;  //sda=0;

  __delay_cycles(5);

  SHT15_SCK&=0xfe;  //sck=0

  __delay_cycles(5);

  SHT15_SCK|=0X01;  //sck=1;

  __delay_cycles(5);

 SHT15_DATA|=0X02; //sda=1

}

我对启动程序进行了软件调试,发现上述程序时间都是us级的,与typ中的ns相差挺大的,也就是说,上述程序并没有严格按照datasheet中的时序严格控制sck和sda,但在硬件调试的时候,上述程序也是可行的,并不会出现通信错误。

我对时序确实有点一知半解,希望有位老师能够解析一下时序以及时序中最容易犯的错误.谢谢!