作者:陈广
日期:2023-05-9
while (1)
{
//等待I2C总线空闲
while(LL_I2C_IsActiveFlag_BUSY(I2C2));
//使能I2C
LL_I2C_Enable(I2C2);
//发送开始信号
LL_I2C_GenerateStartCondition(I2C2);
while(!LL_I2C_IsActiveFlag_SB(I2C2));
//寻址操作
LL_I2C_TransmitData8(I2C2, 0x91);
while(!LL_I2C_IsActiveFlag_ADDR(I2C2));
LL_I2C_ClearFlag_ADDR(I2C2);
//读取接收到的第一个字节
LL_I2C_AcknowledgeNextData(I2C2, LL_I2C_ACK);
while(!LL_I2C_IsActiveFlag_RXNE(I2C2));
uint8_t data = LL_I2C_ReceiveData8(I2C2);
//读取接收到的第二个字节
LL_I2C_AcknowledgeNextData(I2C2, LL_I2C_NACK);
//发送停止信号
LL_I2C_GenerateStopCondition(I2C2);
while(!LL_I2C_IsActiveFlag_RXNE(I2C2));
data = LL_I2C_ReceiveData8(I2C2);
//关闭I2c
LL_I2C_Disable(I2C2);
LL_mDelay(1000);
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
;