From 091a130d655e75bb4d5f24a15883206869e43aa7 Mon Sep 17 00:00:00 2001 From: ozpv <39195175+ozpv@users.noreply.github.com> Date: Sat, 15 Aug 2026 17:18:25 -0500 Subject: Add files via git push --- Core/Src/i2c.c | 131 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100755 Core/Src/i2c.c (limited to 'Core/Src/i2c.c') diff --git a/Core/Src/i2c.c b/Core/Src/i2c.c new file mode 100755 index 0000000..6ebfe13 --- /dev/null +++ b/Core/Src/i2c.c @@ -0,0 +1,131 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file i2c.c + * @brief This file provides code for the configuration + * of the I2C instances. + ****************************************************************************** + * @attention + * + * Copyright (c) 2026 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ +/* Includes ------------------------------------------------------------------*/ +#include "i2c.h" + +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +I2C_HandleTypeDef hi2c4; + +/* I2C4 init function */ +void MX_I2C4_Init(void) +{ + + /* USER CODE BEGIN I2C4_Init 0 */ + + /* USER CODE END I2C4_Init 0 */ + + /* USER CODE BEGIN I2C4_Init 1 */ + + /* USER CODE END I2C4_Init 1 */ + hi2c4.Instance = I2C4; + hi2c4.Init.Timing = 0x00201E2D; + hi2c4.Init.OwnAddress1 = 0; + hi2c4.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; + hi2c4.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE; + hi2c4.Init.OwnAddress2 = 0; + hi2c4.Init.OwnAddress2Masks = I2C_OA2_NOMASK; + hi2c4.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE; + hi2c4.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE; + if (HAL_I2C_Init(&hi2c4) != HAL_OK) + { + Error_Handler(); + } + + /** Configure Analogue filter + */ + if (HAL_I2CEx_ConfigAnalogFilter(&hi2c4, I2C_ANALOGFILTER_ENABLE) != HAL_OK) + { + Error_Handler(); + } + + /** Configure Digital filter + */ + if (HAL_I2CEx_ConfigDigitalFilter(&hi2c4, 0) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN I2C4_Init 2 */ + + /* USER CODE END I2C4_Init 2 */ + +} + +void HAL_I2C_MspInit(I2C_HandleTypeDef* i2cHandle) +{ + + GPIO_InitTypeDef GPIO_InitStruct = {0}; + if(i2cHandle->Instance==I2C4) + { + /* USER CODE BEGIN I2C4_MspInit 0 */ + + /* USER CODE END I2C4_MspInit 0 */ + + __HAL_RCC_GPIOB_CLK_ENABLE(); + /**I2C4 GPIO Configuration + PB8 ------> I2C4_SCL + PB9 ------> I2C4_SDA + */ + GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9; + GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + GPIO_InitStruct.Alternate = GPIO_AF6_I2C4; + HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); + + /* I2C4 clock enable */ + __HAL_RCC_I2C4_CLK_ENABLE(); + /* USER CODE BEGIN I2C4_MspInit 1 */ + + /* USER CODE END I2C4_MspInit 1 */ + } +} + +void HAL_I2C_MspDeInit(I2C_HandleTypeDef* i2cHandle) +{ + + if(i2cHandle->Instance==I2C4) + { + /* USER CODE BEGIN I2C4_MspDeInit 0 */ + + /* USER CODE END I2C4_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_I2C4_CLK_DISABLE(); + + /**I2C4 GPIO Configuration + PB8 ------> I2C4_SCL + PB9 ------> I2C4_SDA + */ + HAL_GPIO_DeInit(GPIOB, GPIO_PIN_8); + + HAL_GPIO_DeInit(GPIOB, GPIO_PIN_9); + + /* USER CODE BEGIN I2C4_MspDeInit 1 */ + + /* USER CODE END I2C4_MspDeInit 1 */ + } +} + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ + -- cgit v1.2.3