TI中文支持网
TI专业的中文技术问题搜集分享网站

cc2541 I2C SCL/SDA 这2个引脚怎么配置成普通的i/o口使用

cc2541  I2C  SCL/SDA 这2个引脚怎么配置成普通的i/o口使用,如果配置成普通的i/o口使用,怎么个用法呢。

配好了会不会像操作P0_1 = 1;  这种操作方式来操作引脚的高低电压呢?

我的本意是想将 cc2541 硬件i2c 换成软件i2c来做,硬件i2c不知道为什么就是不能工作。

Viki Shi:

论坛有类似问题,解答请看这边:http://www.deyisupport.com/question_answer/wireless_connectivity/f/45/t/23777.aspx

Yan:

ming,

可以当成普通GPIO用。你去user guide里面搜索一下 20.1.8 章,会告诉你怎么配置寄存器,关闭I2C,然后配置成GPIO。

硬件I2C如何工作,你可以看一下sensorTag的例程。

ming li17:

回复 Yan:

谢谢 YAN的回复,希望能帮我再看下

void i2c_Init(i2cClock_t clockRate){ I2CWC = 0x00;I2CADDR = 0;I2CCFG &= ~I2C_CLOCK_MASK;I2CCFG |= clockRate;I2CCFG |= (I2C_ENS1);}

uint8 I2C_write(uint8 mcmd){

I2CDATA = (mcmd); I2CCFG &= ~I2C_SI; while ((I2CCFG & I2C_SI) == 0);

}

uint8 I2C_Start(){I2CCFG &= ~I2C_SI; I2CCFG |= I2C_STA; while ((I2CCFG & I2C_SI) == 0); I2CCFG &= ~I2C_STA;I2C_write(0x78);

}

void I2C_Stop(){I2CCFG |= I2C_STO; I2CCFG &= ~I2C_SI; while ((I2CCFG & I2C_STO) != 0);}

void Write_Command(uint8 Data){I2C_Start();I2C_write(0x00);I2C_write(Data);I2C_Stop();}

void Write_Data(uint8 Data){I2C_Start();I2C_write(0x40);I2C_write(Data);I2C_Stop();}

这是我将oled作为slave的 i2c代码,slave地址是0x78,能不能帮我看看是否有问题,这是我参照 sensirTag 的代码,改的。拜托了!!

赞(0)
未经允许不得转载:TI中文支持网 » cc2541 I2C SCL/SDA 这2个引脚怎么配置成普通的i/o口使用
分享到: 更多 (0)