Other Parts Discussed in Thread: C2000WARE
器件型号: F28377D-SEP
主题: C2000WARE 中讨论的其他器件
F28379D 控制器 I²C 两个 μ s 接口:I2C0 和 I2C1。
在 I2C0 上、连接了 EEPROM 和 RTC、该接口工作正常。
现在、我尝试通过背板将 I2C1 连接到处理器。 我已经将从器件地址配置为 0x4A、但不确定该地址是否正确。 在这里、F28379D 被配置为处理器卡的 I²C Ω 从器件。
但是、在处理器卡上未检测到 I²C 从器件地址。 我想确认将 F28379D 配置为 0 Ω 从器件是否 I²C 此设置。
我的从属地址是否正确?
请检查我的以下代码。
#define I2C1_SLAVE_ADDR 0x31 //选择任何空闲的 7 位地址
void i2c1_slave_init (void)
{
//配置前禁用模块
I2C_disableModule (I2CB_BASE);
//初始化时钟(与从设备无关的速度,但需要)
I2C_initController (I2CB_BASE、
DEVICE_SYSCLK_FREQ、
100000、
I2C_DUTYCYCLE_50);
// 配置为从属设备
I2C_setConfig (I2CB_BASE、I2C_SLAVE_RECEIVE_MODE);
// 设置自己的从地址(这是主器件扫描的地址)
I2C_setOwnAddress (I2CB_BASE、I2C1_SLAVE_ADDR);
// 7 位寻址
I2C_setAddressMode (I2CB_BASE、I2C_ADDR_MODE_7BITS);
//标准 8 位数据
I2C_setBitCount (I2CB_BASE、I2C_BITCOUNT_8);
//禁用环回
I2C_disableLoopback (I2CB_base);
//由于没有数据传输、因此不需要 FIFO
I2C_disableFIFO (I2CB_BASE);
//清除待定状态
I2C_clearStatus (I2CB_BASE、
I2C_STS_NO_ACK |
I2C_STS_ARB_LOST |
I2C_STS_STOP_CONDITION);
//启用模块
I2C_enableModule (I2CB_BASE);
}
在 main 中调用以下函数
i2c1_slave_init();