/* USER CODE END TIM4_IRQn 1 */
}
-/**
-* @brief This function handles I2C1 event interrupt.
-*/
-void I2C1_EV_IRQHandler(void)
-{
- /* USER CODE BEGIN I2C1_EV_IRQn 0 */
- u32 sr1 = I2C1->SR1;
- if (sr1 & I2C_SR1_SB)
- LL_I2C_TransmitData8(I2C1, bmp_i2c_addr);
- else if (bmp_i2c_addr & 1)
- {
- // Receive
- if (sr1 & I2C_SR1_ADDR)
- {
- LL_I2C_DisableBitPOS(I2C1);
- if (bmp_i2c_len == 1)
- LL_I2C_AcknowledgeNextData(I2C1, LL_I2C_NACK);
- LL_I2C_AcknowledgeNextData(I2C1, LL_I2C_ACK);
- LL_I2C_ClearFlag_ADDR(I2C1);
- }
- else if (sr1 & I2C_SR1_RXNE)
- {
- if (bmp_i2c_len > 0)
- {
- if (bmp_i2c_len == 1)
- {
- LL_I2C_AcknowledgeNextData(I2C1, LL_I2C_NACK);
- LL_I2C_GenerateStopCondition(I2C1);
- }
- *bmp_i2c_ptr++ = LL_I2C_ReceiveData8(I2C1);
- bmp_i2c_len--;
- }
- else
- LL_I2C_DisableIT_RX(I2C1);
- }
- }
- else
- {
- // Transmit
- if (sr1 & I2C_SR1_ADDR)
- LL_I2C_ClearFlag_ADDR(I2C1);
- else if (sr1 & I2C_SR1_TXE)
- {
- if (bmp_i2c_len)
- {
- LL_I2C_TransmitData8(I2C1, *bmp_i2c_ptr++);
- bmp_i2c_len--;
- }
- else
- LL_I2C_DisableIT_TX(I2C1);
- }
- }
-
- /* USER CODE END I2C1_EV_IRQn 0 */
-
- /* USER CODE BEGIN I2C1_EV_IRQn 1 */
-
- /* USER CODE END I2C1_EV_IRQn 1 */
-}
-
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */