主题中讨论的其他器件: TCA9555、 TM4C123
我正在尝试将基于 TCA9555的 LED 显示板连接到 i2c。 已在 TM4C1294NCPDT 中使用 I2C0。 在 TCA9555中将 Port0配置为输出。 但 LED 未亮起。 如下代码片段。
void initi1 (void)
{
//
//启用 I2C0外设
//
SysCtlPeripheralEnable (SYSCTL_Periph_I2C0);
//
//等待 I2C0模块准备就绪。
//
while (!SysCtlPeripheralReady (SYSCTL_Periph_I2C0)
{
}
//
//初始化主设备和从设备
//
I2CMasterInitExpClk (I2C0_BASE、SysCtlClockGet ()、true);//400速度
//
//指定从机地址
//
I2CMasterSlaveAddrSet (I2C0_BASE、0x27、false);//0x27是地址和只写
//
//将要发送的字符放入数据寄存器中
//
I2CMasterDataPut (I2C0_BASE、0x06);//configuration 寄存器命令
I2CMasterControl (I2C0_BASE、I2C_MASTER_CMD_BURST_SEND_START);
while (I2CMasterBusy (I2C0_BASE));
I2CMasterDataPut (I2C0_BASE、0x00);//配置寄存器写入位
I2CMasterControl (I2C0_BASE、I2C_MASTER_CMD_BURST_SEND_FINISH);
while (I2CMasterBusy (I2C0_BASE));
I2CMasterSlaveAddrSet (I2C0_BASE、0x27、false);//0x27是地址和只写
I2CMasterDataPut (I2C0_BASE、0x02);// DATA 寄存器命令
I2CMasterControl (I2C0_BASE、I2C_MASTER_CMD_BURST_SEND_START);
while (I2CMasterBusy (I2C0_BASE));
I2CMasterDataPut (I2C0_BASE、0xAA);// DATA 寄存器数据
I2CMasterControl (I2C0_BASE、I2C_MASTER_CMD_BURST_SEND_FINISH);
}
我刚刚尝试了 TivaWare 外设驱动程序库示例、其中添加了专门针对 TCA9555的代码。
我们将感谢您的帮助。
此致、
Ramesh