i2c.c 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #include "i2c.h"
  2. I2C_HandleTypeDef hi2c2;
  3. void MX_I2C1_Init(void)
  4. {
  5. /*
  6. hi2c2.Instance = I2C2;
  7. hi2c2.Init.ClockSpeed = 100000;
  8. hi2c2.Init.DutyCycle = I2C_DUTYCYCLE_2;
  9. hi2c2.Init.OwnAddress1 = 0;
  10. hi2c2.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
  11. hi2c2.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
  12. hi2c2.Init.OwnAddress2 = 0;
  13. hi2c2.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
  14. hi2c2.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
  15. HAL_I2C_Init(&hi2c2);
  16. */
  17. }
  18. //
  19. void HAL_I2C_MspInit(I2C_HandleTypeDef* i2cHandle)
  20. {
  21. GPIO_InitTypeDef GPIO_InitStruct = {0};
  22. if(i2cHandle->Instance==I2C2)
  23. {
  24. __HAL_RCC_GPIOA_CLK_ENABLE();
  25. __HAL_RCC_GPIOC_CLK_ENABLE();
  26. GPIO_InitStruct.Pin = GPIO_PIN_8;
  27. GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
  28. GPIO_InitStruct.Pull = GPIO_PULLUP;
  29. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  30. GPIO_InitStruct.Alternate = GPIO_AF4_I2C2;
  31. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  32. GPIO_InitStruct.Pin = GPIO_PIN_4;
  33. GPIO_InitStruct.Alternate = GPIO_AF4_I2C2;
  34. HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
  35. __HAL_RCC_I2C2_CLK_ENABLE();
  36. }
  37. }
  38. void HAL_I2C_MspDeInit(I2C_HandleTypeDef* i2cHandle)
  39. {
  40. if(i2cHandle->Instance==I2C1)
  41. {
  42. __HAL_RCC_I2C2_CLK_DISABLE();
  43. HAL_GPIO_DeInit(GPIOA, GPIO_PIN_8);
  44. HAL_GPIO_DeInit(GPIOC, GPIO_PIN_4);
  45. }
  46. }