40 hi2c2.Instance = I2C2;
41 hi2c2.Init.Timing = 0x30108DFF;
42 hi2c2.Init.OwnAddress1 = 0;
43 hi2c2.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
44 hi2c2.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
45 hi2c2.Init.OwnAddress2 = 0;
46 hi2c2.Init.OwnAddress2Masks = I2C_OA2_NOMASK;
47 hi2c2.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
48 hi2c2.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
49 if (HAL_I2C_Init(&
hi2c2) != HAL_OK)
56 if (HAL_I2CEx_ConfigAnalogFilter(&
hi2c2, I2C_ANALOGFILTER_ENABLE) != HAL_OK)
63 if (HAL_I2CEx_ConfigDigitalFilter(&
hi2c2, 0) != HAL_OK)
76 GPIO_InitTypeDef GPIO_InitStruct = {0};
77 RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
78 if(i2cHandle->Instance==I2C2)
86 PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_I2C2;
87 PeriphClkInitStruct.I2c2ClockSelection = RCC_I2C2CLKSOURCE_PCLK1;
88 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
93 __HAL_RCC_GPIOA_CLK_ENABLE();
98 GPIO_InitStruct.Pin = GPIO_PIN_11|GPIO_PIN_12;
99 GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
100 GPIO_InitStruct.Pull = GPIO_NOPULL;
101 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
102 GPIO_InitStruct.Alternate = GPIO_AF4_I2C2;
103 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
106 __HAL_RCC_I2C2_CLK_ENABLE();
116 if(i2cHandle->Instance==I2C2)
122 __HAL_RCC_I2C2_CLK_DISABLE();
128 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_11);
130 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_12);
HAL_StatusTypeDef I2C_IsDeviceReadyMT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint32_t Trials, uint32_t Timeout)
Wrapper around HAL_I2C_IsDeviceReady() that recovers from a busy bus. If the HAL I2C bus is in a BUSY...
void Error_Handler(void)
Default error handler called by HAL on unrecoverable errors. Disables interrupts and enters an infini...