Dilim 0 14 февраля, 2014 Опубликовано 14 февраля, 2014 · Жалоба Пытаюсь запустить аппаратный i2c и наткнулся на такую проблему: после инициализации RCC_APB2PeriphClockCmd(SL5324_I2C_SCL_GPIO_CLK | SL5324_I2C_SDA_GPIO_CLK, ENABLE); GPIO_InitStructure.GPIO_Pin = SL5324_I2C_SCL_PIN; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_OD; GPIO_Init(SL5324_I2C_SCL_GPIO_PORT, &GPIO_InitStructure);//в этот момент линия падает в 0 GPIO_InitStructure.GPIO_Pin = SL5324_I2C_SDA_PIN; GPIO_Init(SL5324_I2C_SDA_GPIO_PORT, &GPIO_InitStructure);//и тут падает RCC_APB1PeriphClockCmd(SL5324_I2C_CLK, ENABLE); I2C_InitStructure.I2C_Mode = I2C_Mode_I2C; I2C_InitStructure.I2C_DutyCycle = I2C_DutyCycle_2; I2C_InitStructure.I2C_OwnAddress1 = 0x16; I2C_InitStructure.I2C_Ack = I2C_Ack_Enable; I2C_InitStructure.I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit; I2C_InitStructure.I2C_ClockSpeed = 100000; I2C_Init(SL5324_I2C, &I2C_InitStructure); I2C_AcknowledgeConfig(SL5324_I2C, ENABLE); I2C_Cmd(SL5324_I2C, ENABLE); начинаю передачу данных, но стартовые условия не собираются while (I2C_GetFlagStatus(SL5324_I2C,I2C_FLAG_BUSY)); I2C_GenerateSTART(SL5324_I2C, ENABLE); while (I2C_GetFlagStatus(SL5324_I2C,I2C_FLAG_SB) == RESET); //здесь зацикливается I2C_Send7bitAddress(SL5324_I2C, 0x44, I2C_Direction_Transmitter); и т.д......... линии SCL и SDA подтянуты к 3.3v, но во время инициализации ног контроллера напряжение на них падает в ноль, хотя до этого там 3.3. Подскажите, что я делаю не так? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться