STM32F303 i2c
Здравствуйте помогите примером кода аппаратного i2c под STM32F303.
У меня вот есть пример да все не то.
void I2C_StartTransmission(I2C_TypeDef* I2Cx, uint8_t transmissionDirection, uint8_t slaveAddress)
{
// На всякий слуыай ждем, пока шина осовободится
while(I2C_GetFlagStatus(I2Cx, I2C_FLAG_BUSY));
// Генерируем старт - тут все понятно )
I2C_GenerateSTART(I2Cx, ENABLE);
// Ждем пока взлетит нужный флаг
while(!I2C_CheckEvent(I2Cx, I2C_EVENT_MASTER_MODE_SELECT));
// Посылаем адрес подчиненному
I2C_Send7bitAddress(I2Cx, slaveAddress, transmissionDirection);
// А теперь у нас два варианта развития событий - в зависимости от выбранного направления обмена данными
if(transmissionDirection== I2C_Direction_Transmitter)
{
while(!I2C_CheckEvent(I2Cx, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));
}
if(transmissionDirection== I2C_Direction_Receiver)
{
while(!I2C_CheckEvent(I2Cx, I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED));
}
}
Этот пример под STM32F4
|