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.

TM4C123 I2C配置不对,发不出SCL和SDA

int I2C_write(unsigned char SLAVE_ADDRESS,unsigned char reg_addr,unsigned char data)

{

unsigned char datasend;
datasend=data;
I2CMasterSlaveAddrSet(I2C1_BASE, SLAVE_ADDRESS, false);//false代表主模块发送,从模块接收。true代表主模块从从模块读取。
// I2CMasterControl(I2C1_BASE, I2C_MASTER_CMD_BURST_SEND_START);//发送开始指令
I2CMasterDataPut(I2C1_BASE,reg_addr);//将发送的地址放入数据存储器中
// 主模块开始发送数据
I2CMasterControl(I2C1_BASE, I2C_MASTER_CMD_BURST_SEND_START);//发送开始指令
// I2CMasterDataPut(I2C1_BASE,reg_addr);//将发送的地址放入数据存储器中

I2CMasterDataPut(I2C1_BASE,datasend);//将要发送的数据放入存储器中

I2CMasterControl(I2C1_BASE, I2C_MASTER_CMD_SINGLE_SEND);
//while(!(I2CSlaveStatus(I2C1_BASE) & I2C_SLAVE_ACT_RREQ))
// {
// }

while((I2CMasterBusy(I2C1_BASE) ))
{
}

I2CMasterControl(I2C1_BASE, I2C_MASTER_CMD_BURST_SEND_STOP);

/* */

//I2CMasterControl(I2C1_BASE, I2C_MASTER_CMD_BURST_SEND_STOP);//数据发送结束后,发送结束指令

}


int I2C_read(unsigned char SLAVE_ADDRESS,unsigned char reg_addr)
{

unsigned char datarecieve;
// datarecieve=data;
// I2CMasterControl(I2C1_BASE, I2C_MASTER_CMD_BURST_SEND_START);
I2CMasterSlaveAddrSet(I2C1_BASE, SLAVE_ADDRESS, false);
I2CMasterDataPut(I2C1_BASE,reg_addr);
I2CMasterControl(I2C1_BASE, I2C_MASTER_CMD_BURST_SEND_START);

I2CMasterSlaveAddrSet(I2C1_BASE, SLAVE_ADDRESS,true);//true 代表主机接收

I2CMasterControl(I2C1_BASE, I2C_MASTER_CMD_BURST_RECEIVE_CONT);
// while(!(I2CSlaveStatus(I2C1_BASE) & I2C_SLAVE_ACT_TREQ))
// {
// }
datarecieve=I2CMasterDataGet(I2C1_BASE);
// UARTprintf(" Sending: '%c' . . . ", data[i]);//读取从主机接收到的字节

return 0;

}