在CC2541上硬件I2C不是很稳定,因此写了个软件I2C例程
宏定义软件I2C中I\O及操作
#define SCL P1_5 //定义模拟IIC的时钟线
#define SDA P1_6 //定义模拟IIC的数据线
#define SDA_0 (P1_6=0) //SDA=0
#define SDA_1 (P1_6=1) //SDA=1
#define SCL_0 (P1_5=0) //SCL=0
#define SCL_1 (P1_5=1) //SCL=1
#define SDA_IN P1DIR &= ~BIT6 //SDA INPUT
#define SDA_OUT P1DIR |= BIT6 //SDA OUTPUT
#define SCL_IN P1DIR &= ~BIT5 //SCL INPUT
#define SCL_OUT P1DIR |= BIT5 //SCL OUTPUT
#define I2C_SDA_READ (P1 & BIT6)
I2C间断延时函数
void delay_1ms(void) //误差 0us 延时1ms
{
uint8 a,c;
for(c=4;c>0;c--)
{
//for(b=142;b>0;b--)
{
for(