lcw_swust 发表于 2012-7-26 14:55 ![](static/image/common/back.gif)
写DATA时,IO配置为输出
读DATA时,IO配置为输入
网上参考了一段程序,还真是这么回事。
#include <msp430x16x.h>
#define SDA_IN P5DIR &=~BIT0 // P5.0 IN
#define SDA_OUT P5DIR |=BIT0 // P5.0 OUT #define SDA_LOW P5OUT &=~BIT0 // sda=0
#define SDA_HIGH P5OUT |=BIT0 // sda=1 #define SCL_IN P5DIR &=~BIT1 // P5.1 IN
#define SCL_OUT P5DIR |=BIT1 // P5.1 OUT #define SCL_LOW P5OUT &=~BIT1
#define SCL_HIGH P5OUT |=BIT1
unsigned char i2c_check_ACK(void)
{
unsigned char AckStatus;
SDA_IN;
SCL_HIGH;
i2c_delay(2);
if(P5IN & 0x01)
{
AckStatus = FALSE;
}
else
{
AckStatus = TURE;
}
SCL_LOW;
i2c_delay(2);
SDA_OUT;
return AckStatus;
}
|