|
|
@@ -1,140 +1,180 @@
|
|
|
-/* USER CODE BEGIN Header */
|
|
|
-/**
|
|
|
- ******************************************************************************
|
|
|
- * @file i2c.c
|
|
|
- * @brief This file provides code for the configuration
|
|
|
- * of the I2C instances.
|
|
|
- ******************************************************************************
|
|
|
- * @attention
|
|
|
- *
|
|
|
- * Copyright (c) 2022 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 hi2c1;
|
|
|
-
|
|
|
-/* I2C1 init function */
|
|
|
-void MX_I2C1_Init(void)
|
|
|
-{
|
|
|
-
|
|
|
- /* USER CODE BEGIN I2C1_Init 0 */
|
|
|
-
|
|
|
- /* USER CODE END I2C1_Init 0 */
|
|
|
-
|
|
|
- /* USER CODE BEGIN I2C1_Init 1 */
|
|
|
-
|
|
|
- /* USER CODE END I2C1_Init 1 */
|
|
|
- hi2c1.Instance = I2C1;
|
|
|
- hi2c1.Init.Timing = 0x10909CEC;
|
|
|
- hi2c1.Init.OwnAddress1 = 0;
|
|
|
- hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
|
|
|
- hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
|
|
|
- hi2c1.Init.OwnAddress2 = 0;
|
|
|
- hi2c1.Init.OwnAddress2Masks = I2C_OA2_NOMASK;
|
|
|
- hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
|
|
|
- hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
|
|
|
- if (HAL_I2C_Init(&hi2c1) != HAL_OK)
|
|
|
- {
|
|
|
- Error_Handler();
|
|
|
- }
|
|
|
-
|
|
|
- /** Configure Analogue filter
|
|
|
- */
|
|
|
- if (HAL_I2CEx_ConfigAnalogFilter(&hi2c1, I2C_ANALOGFILTER_ENABLE) != HAL_OK)
|
|
|
- {
|
|
|
- Error_Handler();
|
|
|
- }
|
|
|
-
|
|
|
- /** Configure Digital filter
|
|
|
- */
|
|
|
- if (HAL_I2CEx_ConfigDigitalFilter(&hi2c1, 0) != HAL_OK)
|
|
|
- {
|
|
|
- Error_Handler();
|
|
|
- }
|
|
|
- /* USER CODE BEGIN I2C1_Init 2 */
|
|
|
-
|
|
|
- /* USER CODE END I2C1_Init 2 */
|
|
|
-
|
|
|
-}
|
|
|
-
|
|
|
-void HAL_I2C_MspInit(I2C_HandleTypeDef* i2cHandle)
|
|
|
-{
|
|
|
-
|
|
|
- GPIO_InitTypeDef GPIO_InitStruct = {0};
|
|
|
- RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
|
|
|
- if(i2cHandle->Instance==I2C1)
|
|
|
- {
|
|
|
- /* USER CODE BEGIN I2C1_MspInit 0 */
|
|
|
-
|
|
|
- /* USER CODE END I2C1_MspInit 0 */
|
|
|
-
|
|
|
- /** Initializes the peripherals clock
|
|
|
- */
|
|
|
- PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_I2C1;
|
|
|
- PeriphClkInit.I2c1ClockSelection = RCC_I2C1CLKSOURCE_PCLK1;
|
|
|
- if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
|
|
|
- {
|
|
|
- Error_Handler();
|
|
|
- }
|
|
|
-
|
|
|
- __HAL_RCC_GPIOB_CLK_ENABLE();
|
|
|
- /**I2C1 GPIO Configuration
|
|
|
- PB6 ------> I2C1_SCL
|
|
|
- PB7 ------> I2C1_SDA
|
|
|
- */
|
|
|
- GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;
|
|
|
- GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
|
|
|
- GPIO_InitStruct.Pull = GPIO_PULLUP;
|
|
|
- GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
|
|
- GPIO_InitStruct.Alternate = GPIO_AF4_I2C1;
|
|
|
- HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
|
|
-
|
|
|
- /* I2C1 clock enable */
|
|
|
- __HAL_RCC_I2C1_CLK_ENABLE();
|
|
|
- /* USER CODE BEGIN I2C1_MspInit 1 */
|
|
|
-
|
|
|
- /* USER CODE END I2C1_MspInit 1 */
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-void HAL_I2C_MspDeInit(I2C_HandleTypeDef* i2cHandle)
|
|
|
-{
|
|
|
-
|
|
|
- if(i2cHandle->Instance==I2C1)
|
|
|
- {
|
|
|
- /* USER CODE BEGIN I2C1_MspDeInit 0 */
|
|
|
-
|
|
|
- /* USER CODE END I2C1_MspDeInit 0 */
|
|
|
- /* Peripheral clock disable */
|
|
|
- __HAL_RCC_I2C1_CLK_DISABLE();
|
|
|
-
|
|
|
- /**I2C1 GPIO Configuration
|
|
|
- PB6 ------> I2C1_SCL
|
|
|
- PB7 ------> I2C1_SDA
|
|
|
- */
|
|
|
- HAL_GPIO_DeInit(GPIOB, GPIO_PIN_6);
|
|
|
-
|
|
|
- HAL_GPIO_DeInit(GPIOB, GPIO_PIN_7);
|
|
|
-
|
|
|
- /* USER CODE BEGIN I2C1_MspDeInit 1 */
|
|
|
-
|
|
|
- /* USER CODE END I2C1_MspDeInit 1 */
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-/* USER CODE BEGIN 1 */
|
|
|
-
|
|
|
-/* USER CODE END 1 */
|
|
|
+3*
|
|
|
+%TO.P,P3,*%
|
|
|
+%TO.N,*%
|
|
|
+X65000000Y-45000000D03*
|
|
|
+%TD*%
|
|
|
+%TO.P,P4,*%
|
|
|
+%TO.N,*%
|
|
|
+X107500000Y-60000000D03*
|
|
|
+%TD*%
|
|
|
+D34*
|
|
|
+%TO.P,U4,1,E0*%
|
|
|
+%TO.N,/GND*%
|
|
|
+X97960000Y-88800000D03*
|
|
|
+%TO.P,U4,2,E1*%
|
|
|
+X99165000Y-88800000D03*
|
|
|
+%TO.P,U4,3,E2*%
|
|
|
+X100500000Y-88800000D03*
|
|
|
+%TO.P,U4,4,VSS*%
|
|
|
+X101770000Y-88800000D03*
|
|
|
+%TO.P,U4,5,SDA*%
|
|
|
+%TO.N,/sda*%
|
|
|
+X101770000Y-83500000D03*
|
|
|
+%TO.P,U4,6,SCL*%
|
|
|
+%TO.N,/sdl*%
|
|
|
+X100500000Y-83500000D03*
|
|
|
+%TO.P,U4,7,~{WC}*%
|
|
|
+%TO.N,/wc*%
|
|
|
+X99230000Y-83500000D03*
|
|
|
+%TO.P,U4,8,VCC*%
|
|
|
+%TO.N,/3V3*%
|
|
|
+X97960000Y-83500000D03*
|
|
|
+%TD*%
|
|
|
+D33*
|
|
|
+%TO.P,P5,*%
|
|
|
+%TO.N,*%
|
|
|
+X62500000Y-102500000D03*
|
|
|
+%TD*%
|
|
|
+D35*
|
|
|
+%TO.P,U5,1,D1*%
|
|
|
+%TO.N,/D1*%
|
|
|
+X52090000Y-77275000D03*
|
|
|
+%TO.P,U5,2,D2*%
|
|
|
+%TO.N,/D2*%
|
|
|
+X53360000Y-77275000D03*
|
|
|
+%TO.P,U5,3,~{LT}*%
|
|
|
+%TO.N,/EN*%
|
|
|
+X54630000Y-77275000D03*
|
|
|
+%TO.P,U5,4,~{BL}*%
|
|
|
+%TO.N,/LATCH*%
|
|
|
+X55900000Y-77275000D03*
|
|
|
+%TO.P,U5,5,~{LE}*%
|
|
|
+%TO.N,/GND*%
|
|
|
+X57170000Y-77275000D03*
|
|
|
+%TO.P,U5,6,D3*%
|
|
|
+%TO.N,/D3*%
|
|
|
+X58440000Y-77275000D03*
|
|
|
+%TO.P,U5,7,D0*%
|
|
|
+%TO.N,/D0*%
|
|
|
+X59710000Y-77275000D03*
|
|
|
+%TO.P,U5,8,GND*%
|
|
|
+%TO.N,/GND*%
|
|
|
+X60980000Y-77275000D03*
|
|
|
+%TO.P,U5,9,e*%
|
|
|
+%TO.N,/e1*%
|
|
|
+X60945000Y-70925000D03*
|
|
|
+%TO.P,U5,10,d*%
|
|
|
+%TO.N,/d1*%
|
|
|
+X59675000Y-70925000D03*
|
|
|
+%TO.P,U5,11,c*%
|
|
|
+%TO.N,/c1*%
|
|
|
+X58405000Y-70925000D03*
|
|
|
+%TO.P,U5,12,b*%
|
|
|
+%TO.N,/b1*%
|
|
|
+X57135000Y-70925000D03*
|
|
|
+%TO.P,U5,13,a*%
|
|
|
+%TO.N,/a1*%
|
|
|
+X55865000Y-70925000D03*
|
|
|
+%TO.P,U5,14,g*%
|
|
|
+%TO.N,/g1*%
|
|
|
+X54595000Y-70925000D03*
|
|
|
+%TO.P,U5,15,f*%
|
|
|
+%TO.N,/f1*%
|
|
|
+X53325000Y-70925000D03*
|
|
|
+%TO.P,U5,16,VCC*%
|
|
|
+%TO.N,/3V3*%
|
|
|
+X52120000Y-70950000D03*
|
|
|
+%TD*%
|
|
|
+D17*
|
|
|
+%TO.P,DS1,1,E*%
|
|
|
+%TO.N,Net-(DS1-Pad1)*%
|
|
|
+X68650000Y-52380000D03*
|
|
|
+%TO.P,DS1,2,D*%
|
|
|
+%TO.N,Net-(DS1-Pad2)*%
|
|
|
+X71190000Y-52380000D03*
|
|
|
+%TO.P,DS1,3,DP*%
|
|
|
+%TO.N,Net-(DS1-Pad3)*%
|
|
|
+X73730000Y-52380000D03*
|
|
|
+%TO.P,DS1,4,C*%
|
|
|
+%TO.N,Net-(DS1-Pad4)*%
|
|
|
+X76270000Y-52380000D03*
|
|
|
+%TO.P,DS1,5,G*%
|
|
|
+%TO.N,Net-(DS1-Pad5)*%
|
|
|
+X78810000Y-52380000D03*
|
|
|
+%TO.P,DS1,6,NC*%
|
|
|
+%TO.N,unconnected-(DS1-Pad6)*%
|
|
|
+X81350000Y-52380000D03*
|
|
|
+%TO.P,DS1,7,B*%
|
|
|
+%TO.N,Net-(DS1-Pad7)*%
|
|
|
+X81350000Y-67620000D03*
|
|
|
+%TO.P,DS1,8,DIG3*%
|
|
|
+%TO.N,/DIG3*%
|
|
|
+X78810000Y-67620000D03*
|
|
|
+%TO.P,DS1,9,DIG2*%
|
|
|
+%TO.N,/DIG2*%
|
|
|
+X76270000Y-67620000D03*
|
|
|
+%TO.P,DS1,10,F*%
|
|
|
+%TO.N,Net-(DS1-Pad10)*%
|
|
|
+X73730000Y-67620000D03*
|
|
|
+%TO.P,DS1,11,A*%
|
|
|
+%TO.N,Net-(DS1-Pad11)*%
|
|
|
+X71190000Y-67620000D03*
|
|
|
+%TO.P,DS1,12,DIG1*%
|
|
|
+%TO.N,/DIG1*%
|
|
|
+X68650000Y-67620000D03*
|
|
|
+%TD*%
|
|
|
+D36*
|
|
|
+%TO.N,/nrst*%
|
|
|
+X75700000Y-86500000D03*
|
|
|
+X77362364Y-80947583D03*
|
|
|
+X87375000Y-78500000D03*
|
|
|
+X75425500Y-83091592D03*
|
|
|
+%TO.N,/USB_OTG_FS_VBUS*%
|
|
|
+X104300000Y-89400000D03*
|
|
|
+X80293596Y-95560653D03*
|
|
|
+%TO.N,/e1*%
|
|
|
+X60950000Y-61500000D03*
|
|
|
+X60950000Y-68900000D03*
|
|
|
+%TO.N,/d1*%
|
|
|
+X60225500Y-63170201D03*
|
|
|
+X59700000Y-68900000D03*
|
|
|
+%TO.N,/c1*%
|
|
|
+X72100000Y-57800000D03*
|
|
|
+X65694800Y-59794800D03*
|
|
|
+%TO.N,/USB_OTG_FS_P*%
|
|
|
+X104200000Y-87976000D03*
|
|
|
+X77600000Y-94500000D03*
|
|
|
+%TO.N,/USB_OTG_FS_N*%
|
|
|
+X76709663Y-94954207D03*
|
|
|
+X105000000Y-88675500D03*
|
|
|
+%TO.N,/J1*%
|
|
|
+X77412967Y-83013122D03*
|
|
|
+%TO.N,/J2*%
|
|
|
+X78077118Y-82266189D03*
|
|
|
+%TO.N,/J3*%
|
|
|
+X108800000Y-80200000D03*
|
|
|
+%TO.N,/J4*%
|
|
|
+X83653407Y-92859531D03*
|
|
|
+%TO.N,/wc*%
|
|
|
+X82140000Y-90530000D03*
|
|
|
+X99320000Y-85120000D03*
|
|
|
+%TO.N,/TX*%
|
|
|
+X89400000Y-54800000D03*
|
|
|
+X79440000Y-91580000D03*
|
|
|
+%TO.N,/RX*%
|
|
|
+X88675500Y-56000000D03*
|
|
|
+X78435910Y-92284090D03*
|
|
|
+%TO.N,/GND*%
|
|
|
+X90225000Y-77450000D03*
|
|
|
+X80000000Y-110350000D03*
|
|
|
+X67762712Y-87107981D03*
|
|
|
+X108000000Y-78350000D03*
|
|
|
+X67900000Y-93400000D03*
|
|
|
+X73775500Y-83412853D03*
|
|
|
+X55450000Y-98950000D03*
|
|
|
+X75300000Y-82100000D03*
|
|
|
+X81000000Y-42400000D03*
|
|
|
+X81748816Y-87332544D03*
|
|
|
+X45000000Y-73450000D03*
|
|
|
+X77700497Y-98100000D03*
|
|
|
+X103500000Y-
|