微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > cc2541 I2C SCL/SDA 这2个引脚怎么配置成普通的i/o口使用

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

时间:10-02 整理:3721RD 点击:

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

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

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

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

ming,

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

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

谢谢 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 的代码,改的。拜托了!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top