xref: /btstack/port/stm32-f4discovery-cc256x/Src/i2c.c (revision 225f4ba4fe806afeda1ee8519bb5f4a8ce540af2)
1*225f4ba4SMatthias Ringwald /**
2*225f4ba4SMatthias Ringwald   ******************************************************************************
3*225f4ba4SMatthias Ringwald   * File Name          : I2C.c
4*225f4ba4SMatthias Ringwald   * Description        : This file provides code for the configuration
5*225f4ba4SMatthias Ringwald   *                      of the I2C instances.
6*225f4ba4SMatthias Ringwald   ******************************************************************************
7*225f4ba4SMatthias Ringwald   * @attention
8*225f4ba4SMatthias Ringwald   *
9*225f4ba4SMatthias Ringwald   * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
10*225f4ba4SMatthias Ringwald   * All rights reserved.</center></h2>
11*225f4ba4SMatthias Ringwald   *
12*225f4ba4SMatthias Ringwald   * This software component is licensed by ST under BSD 3-Clause license,
13*225f4ba4SMatthias Ringwald   * the "License"; You may not use this file except in compliance with the
14*225f4ba4SMatthias Ringwald   * License. You may obtain a copy of the License at:
15*225f4ba4SMatthias Ringwald   *                        opensource.org/licenses/BSD-3-Clause
16*225f4ba4SMatthias Ringwald   *
17*225f4ba4SMatthias Ringwald   ******************************************************************************
18*225f4ba4SMatthias Ringwald   */
19*225f4ba4SMatthias Ringwald 
20*225f4ba4SMatthias Ringwald /* Includes ------------------------------------------------------------------*/
21*225f4ba4SMatthias Ringwald #include "i2c.h"
22*225f4ba4SMatthias Ringwald 
23*225f4ba4SMatthias Ringwald /* USER CODE BEGIN 0 */
24*225f4ba4SMatthias Ringwald 
25*225f4ba4SMatthias Ringwald /* USER CODE END 0 */
26*225f4ba4SMatthias Ringwald 
27*225f4ba4SMatthias Ringwald I2C_HandleTypeDef hi2c1;
28*225f4ba4SMatthias Ringwald 
29*225f4ba4SMatthias Ringwald /* I2C1 init function */
MX_I2C1_Init(void)30*225f4ba4SMatthias Ringwald void MX_I2C1_Init(void)
31*225f4ba4SMatthias Ringwald {
32*225f4ba4SMatthias Ringwald 
33*225f4ba4SMatthias Ringwald   hi2c1.Instance = I2C1;
34*225f4ba4SMatthias Ringwald   hi2c1.Init.ClockSpeed = 100000;
35*225f4ba4SMatthias Ringwald   hi2c1.Init.DutyCycle = I2C_DUTYCYCLE_2;
36*225f4ba4SMatthias Ringwald   hi2c1.Init.OwnAddress1 = 0;
37*225f4ba4SMatthias Ringwald   hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
38*225f4ba4SMatthias Ringwald   hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
39*225f4ba4SMatthias Ringwald   hi2c1.Init.OwnAddress2 = 0;
40*225f4ba4SMatthias Ringwald   hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
41*225f4ba4SMatthias Ringwald   hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
42*225f4ba4SMatthias Ringwald   if (HAL_I2C_Init(&hi2c1) != HAL_OK)
43*225f4ba4SMatthias Ringwald   {
44*225f4ba4SMatthias Ringwald     Error_Handler();
45*225f4ba4SMatthias Ringwald   }
46*225f4ba4SMatthias Ringwald 
47*225f4ba4SMatthias Ringwald }
48*225f4ba4SMatthias Ringwald 
HAL_I2C_MspInit(I2C_HandleTypeDef * i2cHandle)49*225f4ba4SMatthias Ringwald void HAL_I2C_MspInit(I2C_HandleTypeDef* i2cHandle)
50*225f4ba4SMatthias Ringwald {
51*225f4ba4SMatthias Ringwald 
52*225f4ba4SMatthias Ringwald   GPIO_InitTypeDef GPIO_InitStruct = {0};
53*225f4ba4SMatthias Ringwald   if(i2cHandle->Instance==I2C1)
54*225f4ba4SMatthias Ringwald   {
55*225f4ba4SMatthias Ringwald   /* USER CODE BEGIN I2C1_MspInit 0 */
56*225f4ba4SMatthias Ringwald 
57*225f4ba4SMatthias Ringwald   /* USER CODE END I2C1_MspInit 0 */
58*225f4ba4SMatthias Ringwald 
59*225f4ba4SMatthias Ringwald     __HAL_RCC_GPIOB_CLK_ENABLE();
60*225f4ba4SMatthias Ringwald     /**I2C1 GPIO Configuration
61*225f4ba4SMatthias Ringwald     PB6     ------> I2C1_SCL
62*225f4ba4SMatthias Ringwald     PB9     ------> I2C1_SDA
63*225f4ba4SMatthias Ringwald     */
64*225f4ba4SMatthias Ringwald     GPIO_InitStruct.Pin = Audio_SCL_Pin|Audio_SDA_Pin;
65*225f4ba4SMatthias Ringwald     GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
66*225f4ba4SMatthias Ringwald     GPIO_InitStruct.Pull = GPIO_PULLUP;
67*225f4ba4SMatthias Ringwald     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
68*225f4ba4SMatthias Ringwald     GPIO_InitStruct.Alternate = GPIO_AF4_I2C1;
69*225f4ba4SMatthias Ringwald     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
70*225f4ba4SMatthias Ringwald 
71*225f4ba4SMatthias Ringwald     /* I2C1 clock enable */
72*225f4ba4SMatthias Ringwald     __HAL_RCC_I2C1_CLK_ENABLE();
73*225f4ba4SMatthias Ringwald   /* USER CODE BEGIN I2C1_MspInit 1 */
74*225f4ba4SMatthias Ringwald 
75*225f4ba4SMatthias Ringwald   /* USER CODE END I2C1_MspInit 1 */
76*225f4ba4SMatthias Ringwald   }
77*225f4ba4SMatthias Ringwald }
78*225f4ba4SMatthias Ringwald 
HAL_I2C_MspDeInit(I2C_HandleTypeDef * i2cHandle)79*225f4ba4SMatthias Ringwald void HAL_I2C_MspDeInit(I2C_HandleTypeDef* i2cHandle)
80*225f4ba4SMatthias Ringwald {
81*225f4ba4SMatthias Ringwald 
82*225f4ba4SMatthias Ringwald   if(i2cHandle->Instance==I2C1)
83*225f4ba4SMatthias Ringwald   {
84*225f4ba4SMatthias Ringwald   /* USER CODE BEGIN I2C1_MspDeInit 0 */
85*225f4ba4SMatthias Ringwald 
86*225f4ba4SMatthias Ringwald   /* USER CODE END I2C1_MspDeInit 0 */
87*225f4ba4SMatthias Ringwald     /* Peripheral clock disable */
88*225f4ba4SMatthias Ringwald     __HAL_RCC_I2C1_CLK_DISABLE();
89*225f4ba4SMatthias Ringwald 
90*225f4ba4SMatthias Ringwald     /**I2C1 GPIO Configuration
91*225f4ba4SMatthias Ringwald     PB6     ------> I2C1_SCL
92*225f4ba4SMatthias Ringwald     PB9     ------> I2C1_SDA
93*225f4ba4SMatthias Ringwald     */
94*225f4ba4SMatthias Ringwald     HAL_GPIO_DeInit(GPIOB, Audio_SCL_Pin|Audio_SDA_Pin);
95*225f4ba4SMatthias Ringwald 
96*225f4ba4SMatthias Ringwald   /* USER CODE BEGIN I2C1_MspDeInit 1 */
97*225f4ba4SMatthias Ringwald 
98*225f4ba4SMatthias Ringwald   /* USER CODE END I2C1_MspDeInit 1 */
99*225f4ba4SMatthias Ringwald   }
100*225f4ba4SMatthias Ringwald }
101*225f4ba4SMatthias Ringwald 
102*225f4ba4SMatthias Ringwald /* USER CODE BEGIN 1 */
103*225f4ba4SMatthias Ringwald 
104*225f4ba4SMatthias Ringwald /* USER CODE END 1 */
105*225f4ba4SMatthias Ringwald 
106*225f4ba4SMatthias Ringwald /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
107