commit for I2C2 peripheral config with TX DMA channel, working on 400kHz fast mode.

This commit is contained in:
2026-08-28 15:33:48 +08:00
parent 983d63e3a5
commit dc8b4bdb5f
8 changed files with 207 additions and 17 deletions
+37
View File
@@ -56,7 +56,9 @@
/* External variables --------------------------------------------------------*/
extern DMA_HandleTypeDef hdma_i2c1_rx;
extern DMA_HandleTypeDef hdma_i2c2_tx;
extern I2C_HandleTypeDef hi2c1;
extern I2C_HandleTypeDef hi2c2;
extern DMA_HandleTypeDef hdma_usart2_rx;
extern DMA_HandleTypeDef hdma_usart2_tx;
extern UART_HandleTypeDef huart2;
@@ -164,6 +166,20 @@ void DMA1_Channel2_3_IRQHandler(void)
/* USER CODE END DMA1_Channel2_3_IRQn 1 */
}
/**
* @brief This function handles DMA1 channel 4, channel 5 and DMAMUX1 interrupts.
*/
void DMA1_Ch4_5_DMAMUX1_OVR_IRQHandler(void)
{
/* USER CODE BEGIN DMA1_Ch4_5_DMAMUX1_OVR_IRQn 0 */
/* USER CODE END DMA1_Ch4_5_DMAMUX1_OVR_IRQn 0 */
HAL_DMA_IRQHandler(&hdma_i2c2_tx);
/* USER CODE BEGIN DMA1_Ch4_5_DMAMUX1_OVR_IRQn 1 */
/* USER CODE END DMA1_Ch4_5_DMAMUX1_OVR_IRQn 1 */
}
/**
* @brief This function handles TIM17 global interrupt.
*/
@@ -199,6 +215,27 @@ void I2C1_IRQHandler(void)
/* USER CODE END I2C1_IRQn 1 */
}
/**
* @brief This function handles I2C2 global interrupt.
*/
void I2C2_IRQHandler(void)
{
/* USER CODE BEGIN I2C2_IRQn 0 */
/* USER CODE END I2C2_IRQn 0 */
if (hi2c2.Instance->ISR & (I2C_FLAG_BERR | I2C_FLAG_ARLO | I2C_FLAG_OVR))
{
HAL_I2C_ER_IRQHandler(&hi2c2);
}
else
{
HAL_I2C_EV_IRQHandler(&hi2c2);
}
/* USER CODE BEGIN I2C2_IRQn 1 */
/* USER CODE END I2C2_IRQn 1 */
}
/**
* @brief This function handles USART2 global interrupt / USART2 wake-up interrupt through EXTI line 26.
*/