大家好,我用129的自带I2C,无法写入数据。
void writedata(uint8_t addr, uint8_t val)
{
ROM_I2CMasterSlaveAddrSet(I2C_UNIT, OV7670_ADDR>>1, false);
ROM_I2CMasterDataPut(I2C_UNIT, addr);
ROM_I2CMasterControl(I2C_UNIT, I2C_MASTER_CMD_BURST_SEND_START);
ROM_SysCtlDelay(1000);
while(ROM_I2CMasterBusy(I2C_UNIT));
ROM_SysCtlDelay(1500);
ROM_I2CMasterDataPut(I2C_UNIT, val);
ROM_I2CMasterControl(I2C_UNIT, I2C_MASTER_CMD_BURST_SEND_FINISH);
ROM_SysCtlDelay(1000);
while(ROM_I2CMasterBusy(I2C_UNIT));
}
{
ROM_I2CMasterSlaveAddrSet(I2C_UNIT, OV7670_ADDR>>1, false);
ROM_I2CMasterDataPut(I2C_UNIT, addr);
ROM_I2CMasterControl(I2C_UNIT, I2C_MASTER_CMD_BURST_SEND_START);
ROM_SysCtlDelay(1000);
while(ROM_I2CMasterBusy(I2C_UNIT));
ROM_SysCtlDelay(1500);
ROM_I2CMasterDataPut(I2C_UNIT, val);
ROM_I2CMasterControl(I2C_UNIT, I2C_MASTER_CMD_BURST_SEND_FINISH);
ROM_SysCtlDelay(1000);
while(ROM_I2CMasterBusy(I2C_UNIT));
}
设置根据技术手册的感觉没有错,用示波器也看过,地址和数据都没错,但是就是写不进去,读可以读出来器件ID。跪求各位大佬是什么原因。