f303_h_p1 1

Dependencies:   mbed

Committer:
caa45040
Date:
Fri May 06 14:22:30 2022 +0000
Revision:
26:a047b389adfd
Parent:
9:79c4e72a3ab3
i2c_slave_HC_SR04_010_BIN re

Who changed what in which revision?

UserRevisionLine numberNew contents of line
caa45040 9:79c4e72a3ab3 1 /* USER CODE BEGIN Header */
caa45040 9:79c4e72a3ab3 2 /**
caa45040 9:79c4e72a3ab3 3 ******************************************************************************
caa45040 9:79c4e72a3ab3 4 * @file : main.c
caa45040 9:79c4e72a3ab3 5 * @brief : Main program body
caa45040 9:79c4e72a3ab3 6 ******************************************************************************
caa45040 9:79c4e72a3ab3 7 * @attention
caa45040 9:79c4e72a3ab3 8 *
caa45040 9:79c4e72a3ab3 9 * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
caa45040 9:79c4e72a3ab3 10 * All rights reserved.</center></h2>
caa45040 9:79c4e72a3ab3 11 *
caa45040 9:79c4e72a3ab3 12 * This software component is licensed by ST under BSD 3-Clause license,
caa45040 9:79c4e72a3ab3 13 * the "License"; You may not use this file except in compliance with the
caa45040 9:79c4e72a3ab3 14 * License. You may obtain a copy of the License at:
caa45040 9:79c4e72a3ab3 15 * opensource.org/licenses/BSD-3-Clause
caa45040 9:79c4e72a3ab3 16 *
caa45040 9:79c4e72a3ab3 17 ******************************************************************************
caa45040 9:79c4e72a3ab3 18 */
caa45040 9:79c4e72a3ab3 19 /* USER CODE END Header */
caa45040 9:79c4e72a3ab3 20 /* Includes ------------------------------------------------------------------*/
caa45040 9:79c4e72a3ab3 21 #include "main.h"
caa45040 9:79c4e72a3ab3 22
caa45040 9:79c4e72a3ab3 23 /* Private includes ----------------------------------------------------------*/
caa45040 9:79c4e72a3ab3 24 /* USER CODE BEGIN Includes */
caa45040 9:79c4e72a3ab3 25
caa45040 9:79c4e72a3ab3 26 /* USER CODE END Includes */
caa45040 9:79c4e72a3ab3 27
caa45040 9:79c4e72a3ab3 28 /* Private typedef -----------------------------------------------------------*/
caa45040 9:79c4e72a3ab3 29 /* USER CODE BEGIN PTD */
caa45040 9:79c4e72a3ab3 30
caa45040 9:79c4e72a3ab3 31 /* USER CODE END PTD */
caa45040 9:79c4e72a3ab3 32
caa45040 9:79c4e72a3ab3 33 /* Private define ------------------------------------------------------------*/
caa45040 9:79c4e72a3ab3 34 /* USER CODE BEGIN PD */
caa45040 9:79c4e72a3ab3 35 /* USER CODE END PD */
caa45040 9:79c4e72a3ab3 36
caa45040 9:79c4e72a3ab3 37 /* Private macro -------------------------------------------------------------*/
caa45040 9:79c4e72a3ab3 38 /* USER CODE BEGIN PM */
caa45040 9:79c4e72a3ab3 39
caa45040 9:79c4e72a3ab3 40 /* USER CODE END PM */
caa45040 9:79c4e72a3ab3 41
caa45040 9:79c4e72a3ab3 42 /* Private variables ---------------------------------------------------------*/
caa45040 9:79c4e72a3ab3 43 I2C_HandleTypeDef hi2c1;
caa45040 9:79c4e72a3ab3 44
caa45040 9:79c4e72a3ab3 45 UART_HandleTypeDef huart2;
caa45040 9:79c4e72a3ab3 46
caa45040 9:79c4e72a3ab3 47 /* USER CODE BEGIN PV */
caa45040 9:79c4e72a3ab3 48
caa45040 9:79c4e72a3ab3 49 /* USER CODE END PV */
caa45040 9:79c4e72a3ab3 50
caa45040 9:79c4e72a3ab3 51 /* Private function prototypes -----------------------------------------------*/
caa45040 9:79c4e72a3ab3 52 void SystemClock_Config(void);
caa45040 9:79c4e72a3ab3 53 static void MX_GPIO_Init(void);
caa45040 9:79c4e72a3ab3 54 static void MX_I2C1_Init(void);
caa45040 9:79c4e72a3ab3 55 static void MX_USART2_UART_Init(void);
caa45040 9:79c4e72a3ab3 56 /* USER CODE BEGIN PFP */
caa45040 9:79c4e72a3ab3 57
caa45040 9:79c4e72a3ab3 58 /* USER CODE END PFP */
caa45040 9:79c4e72a3ab3 59
caa45040 9:79c4e72a3ab3 60 /* Private user code ---------------------------------------------------------*/
caa45040 9:79c4e72a3ab3 61 /* USER CODE BEGIN 0 */
caa45040 9:79c4e72a3ab3 62
caa45040 9:79c4e72a3ab3 63 /* USER CODE END 0 */
caa45040 9:79c4e72a3ab3 64
caa45040 9:79c4e72a3ab3 65 /**
caa45040 9:79c4e72a3ab3 66 * @brief The application entry point.
caa45040 9:79c4e72a3ab3 67 * @retval int
caa45040 9:79c4e72a3ab3 68 */
caa45040 9:79c4e72a3ab3 69 int main(void)
caa45040 9:79c4e72a3ab3 70 {
caa45040 9:79c4e72a3ab3 71 /* USER CODE BEGIN 1 */
caa45040 9:79c4e72a3ab3 72
caa45040 9:79c4e72a3ab3 73 /* USER CODE END 1 */
caa45040 9:79c4e72a3ab3 74
caa45040 9:79c4e72a3ab3 75 /* MCU Configuration--------------------------------------------------------*/
caa45040 9:79c4e72a3ab3 76
caa45040 9:79c4e72a3ab3 77 /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
caa45040 9:79c4e72a3ab3 78 HAL_Init();
caa45040 9:79c4e72a3ab3 79
caa45040 9:79c4e72a3ab3 80 /* USER CODE BEGIN Init */
caa45040 9:79c4e72a3ab3 81
caa45040 9:79c4e72a3ab3 82 /* USER CODE END Init */
caa45040 9:79c4e72a3ab3 83
caa45040 9:79c4e72a3ab3 84 /* Configure the system clock */
caa45040 9:79c4e72a3ab3 85 SystemClock_Config();
caa45040 9:79c4e72a3ab3 86
caa45040 9:79c4e72a3ab3 87 /* USER CODE BEGIN SysInit */
caa45040 9:79c4e72a3ab3 88
caa45040 9:79c4e72a3ab3 89 /* USER CODE END SysInit */
caa45040 9:79c4e72a3ab3 90
caa45040 9:79c4e72a3ab3 91 /* Initialize all configured peripherals */
caa45040 9:79c4e72a3ab3 92 MX_GPIO_Init();
caa45040 9:79c4e72a3ab3 93 MX_I2C1_Init();
caa45040 9:79c4e72a3ab3 94 MX_USART2_UART_Init();
caa45040 9:79c4e72a3ab3 95 /* USER CODE BEGIN 2 */
caa45040 9:79c4e72a3ab3 96
caa45040 9:79c4e72a3ab3 97
caa45040 9:79c4e72a3ab3 98 const int ADDR = 0x90; // address 5851
caa45040 9:79c4e72a3ab3 99 //const int ADDR = 0x72; // address 751
caa45040 9:79c4e72a3ab3 100 const int ADDR_LCD = 0x7C; // address
caa45040 9:79c4e72a3ab3 101
caa45040 9:79c4e72a3ab3 102 //液晶の初期化の文字列
caa45040 9:79c4e72a3ab3 103 uint8_t INIT_com[]= {
caa45040 9:79c4e72a3ab3 104 0x0,0x38,
caa45040 9:79c4e72a3ab3 105 0x0,0x39,
caa45040 9:79c4e72a3ab3 106 0x0,0x4,
caa45040 9:79c4e72a3ab3 107 0x0,0x14,
caa45040 9:79c4e72a3ab3 108 0x0,0x70,
caa45040 9:79c4e72a3ab3 109 0x0,0x56,
caa45040 9:79c4e72a3ab3 110 0x0,0x6C,
caa45040 9:79c4e72a3ab3 111 0x0,0x38,
caa45040 9:79c4e72a3ab3 112 0x0,0xC,
caa45040 9:79c4e72a3ab3 113 0x0,0x1,
caa45040 9:79c4e72a3ab3 114 0x40,0x41
caa45040 9:79c4e72a3ab3 115 };
caa45040 9:79c4e72a3ab3 116
caa45040 9:79c4e72a3ab3 117 //画面のクリア
caa45040 9:79c4e72a3ab3 118 uint8_t INIT_cls[]= {0x0,0x1};
caa45040 9:79c4e72a3ab3 119
caa45040 9:79c4e72a3ab3 120
caa45040 9:79c4e72a3ab3 121 //液晶の初期化
caa45040 9:79c4e72a3ab3 122 HAL_Delay(200); //液晶の安定待ち
caa45040 9:79c4e72a3ab3 123 for(int ii=0; ii<11; ii++) {
caa45040 9:79c4e72a3ab3 124 HAL_I2C_Master_Transmit(&hi2c1, ADDR_LCD, &INIT_com[ii*2], 2, 3000);
caa45040 9:79c4e72a3ab3 125 HAL_Delay(3);
caa45040 9:79c4e72a3ab3 126 } //for
caa45040 9:79c4e72a3ab3 127
caa45040 9:79c4e72a3ab3 128 int tempval; //温度
caa45040 9:79c4e72a3ab3 129 char data_read[6]; //i2cバッファー
caa45040 9:79c4e72a3ab3 130 int n10; //10の桁
caa45040 9:79c4e72a3ab3 131 uint8_t b[6]; //バッファー
caa45040 9:79c4e72a3ab3 132
caa45040 9:79c4e72a3ab3 133
caa45040 9:79c4e72a3ab3 134
caa45040 9:79c4e72a3ab3 135
caa45040 9:79c4e72a3ab3 136 /* USER CODE END 2 */
caa45040 9:79c4e72a3ab3 137
caa45040 9:79c4e72a3ab3 138 /* Infinite loop */
caa45040 9:79c4e72a3ab3 139 /* USER CODE BEGIN WHILE */
caa45040 9:79c4e72a3ab3 140 while (1)
caa45040 9:79c4e72a3ab3 141 {
caa45040 9:79c4e72a3ab3 142 /* USER CODE END WHILE */
caa45040 9:79c4e72a3ab3 143
caa45040 9:79c4e72a3ab3 144
caa45040 9:79c4e72a3ab3 145 //液晶のクリア
caa45040 9:79c4e72a3ab3 146 HAL_I2C_Master_Transmit(&hi2c1, ADDR_LCD, INIT_cls, 2, 3000);
caa45040 9:79c4e72a3ab3 147 HAL_Delay(3);
caa45040 9:79c4e72a3ab3 148
caa45040 9:79c4e72a3ab3 149 //温度センサーの初期化
caa45040 9:79c4e72a3ab3 150 //set address 0
caa45040 9:79c4e72a3ab3 151 HAL_I2C_Master_Transmit(&hi2c1, ADDR, (uint8_t *)"\000", 1, 3000); //addres 0
caa45040 9:79c4e72a3ab3 152 HAL_Delay(1);
caa45040 9:79c4e72a3ab3 153
caa45040 9:79c4e72a3ab3 154 //温度の読み込み
caa45040 9:79c4e72a3ab3 155 // Read temperature register
caa45040 9:79c4e72a3ab3 156 HAL_I2C_Master_Receive(&hi2c1, ADDR, b, 1, 3000);
caa45040 9:79c4e72a3ab3 157
caa45040 9:79c4e72a3ab3 158 //温度の保存
caa45040 9:79c4e72a3ab3 159 // Calculate temperature value in Celcius
caa45040 9:79c4e72a3ab3 160 tempval = b[0];
caa45040 9:79c4e72a3ab3 161
caa45040 9:79c4e72a3ab3 162 //tempval = 12; //debug
caa45040 9:79c4e72a3ab3 163
caa45040 9:79c4e72a3ab3 164 //計算
caa45040 9:79c4e72a3ab3 165 // Calculation temp
caa45040 9:79c4e72a3ab3 166 //10の割り算 0から1028までは、正しい。主に0から999 ((n*205)>>11)
caa45040 9:79c4e72a3ab3 167 n10 = (tempval*205)>>11; //10の桁 tempval/10
caa45040 9:79c4e72a3ab3 168 tempval = tempval - ( n10 * 10 ); //1の桁 tempval%10
caa45040 9:79c4e72a3ab3 169
caa45040 9:79c4e72a3ab3 170 //液晶に出力 xなぜか連続送信するとバグる為に個別送信
caa45040 9:79c4e72a3ab3 171 // Display result
caa45040 9:79c4e72a3ab3 172 data_read[0] = '0' + n10;
caa45040 9:79c4e72a3ab3 173 data_read[1] = '0' + tempval;
caa45040 9:79c4e72a3ab3 174 data_read[2] = 0;
caa45040 9:79c4e72a3ab3 175 for(int ii=0; ii < 2 ; ii++) {
caa45040 9:79c4e72a3ab3 176 b[0]='@';
caa45040 9:79c4e72a3ab3 177 b[1]=data_read[ii];
caa45040 9:79c4e72a3ab3 178 HAL_I2C_Master_Transmit(&hi2c1, ADDR_LCD, b, 2, 3000);
caa45040 9:79c4e72a3ab3 179 HAL_Delay(1);
caa45040 9:79c4e72a3ab3 180 }//for
caa45040 9:79c4e72a3ab3 181
caa45040 9:79c4e72a3ab3 182 //1秒待つ
caa45040 9:79c4e72a3ab3 183 HAL_Delay(1000);
caa45040 9:79c4e72a3ab3 184
caa45040 9:79c4e72a3ab3 185
caa45040 9:79c4e72a3ab3 186 /* USER CODE BEGIN 3 */
caa45040 9:79c4e72a3ab3 187 }
caa45040 9:79c4e72a3ab3 188 /* USER CODE END 3 */
caa45040 9:79c4e72a3ab3 189 }
caa45040 9:79c4e72a3ab3 190
caa45040 9:79c4e72a3ab3 191 /**
caa45040 9:79c4e72a3ab3 192 * @brief System Clock Configuration
caa45040 9:79c4e72a3ab3 193 * @retval None
caa45040 9:79c4e72a3ab3 194 */
caa45040 9:79c4e72a3ab3 195 void SystemClock_Config(void)
caa45040 9:79c4e72a3ab3 196 {
caa45040 9:79c4e72a3ab3 197 RCC_OscInitTypeDef RCC_OscInitStruct = {0};
caa45040 9:79c4e72a3ab3 198 RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
caa45040 9:79c4e72a3ab3 199 RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
caa45040 9:79c4e72a3ab3 200
caa45040 9:79c4e72a3ab3 201 /** Configure the main internal regulator output voltage
caa45040 9:79c4e72a3ab3 202 */
caa45040 9:79c4e72a3ab3 203 __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
caa45040 9:79c4e72a3ab3 204 /** Initializes the RCC Oscillators according to the specified parameters
caa45040 9:79c4e72a3ab3 205 * in the RCC_OscInitTypeDef structure.
caa45040 9:79c4e72a3ab3 206 */
caa45040 9:79c4e72a3ab3 207 RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
caa45040 9:79c4e72a3ab3 208 RCC_OscInitStruct.HSIState = RCC_HSI_ON;
caa45040 9:79c4e72a3ab3 209 RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
caa45040 9:79c4e72a3ab3 210 RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
caa45040 9:79c4e72a3ab3 211 RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;
caa45040 9:79c4e72a3ab3 212 RCC_OscInitStruct.PLL.PLLMUL = RCC_PLLMUL_4;
caa45040 9:79c4e72a3ab3 213 RCC_OscInitStruct.PLL.PLLDIV = RCC_PLLDIV_2;
caa45040 9:79c4e72a3ab3 214 if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
caa45040 9:79c4e72a3ab3 215 {
caa45040 9:79c4e72a3ab3 216 Error_Handler();
caa45040 9:79c4e72a3ab3 217 }
caa45040 9:79c4e72a3ab3 218 /** Initializes the CPU, AHB and APB buses clocks
caa45040 9:79c4e72a3ab3 219 */
caa45040 9:79c4e72a3ab3 220 RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
caa45040 9:79c4e72a3ab3 221 |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
caa45040 9:79c4e72a3ab3 222 RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
caa45040 9:79c4e72a3ab3 223 RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
caa45040 9:79c4e72a3ab3 224 RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
caa45040 9:79c4e72a3ab3 225 RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
caa45040 9:79c4e72a3ab3 226
caa45040 9:79c4e72a3ab3 227 if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1) != HAL_OK)
caa45040 9:79c4e72a3ab3 228 {
caa45040 9:79c4e72a3ab3 229 Error_Handler();
caa45040 9:79c4e72a3ab3 230 }
caa45040 9:79c4e72a3ab3 231 PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART2|RCC_PERIPHCLK_I2C1;
caa45040 9:79c4e72a3ab3 232 PeriphClkInit.Usart2ClockSelection = RCC_USART2CLKSOURCE_PCLK1;
caa45040 9:79c4e72a3ab3 233 PeriphClkInit.I2c1ClockSelection = RCC_I2C1CLKSOURCE_PCLK1;
caa45040 9:79c4e72a3ab3 234 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
caa45040 9:79c4e72a3ab3 235 {
caa45040 9:79c4e72a3ab3 236 Error_Handler();
caa45040 9:79c4e72a3ab3 237 }
caa45040 9:79c4e72a3ab3 238 }
caa45040 9:79c4e72a3ab3 239
caa45040 9:79c4e72a3ab3 240 /**
caa45040 9:79c4e72a3ab3 241 * @brief I2C1 Initialization Function
caa45040 9:79c4e72a3ab3 242 * @param None
caa45040 9:79c4e72a3ab3 243 * @retval None
caa45040 9:79c4e72a3ab3 244 */
caa45040 9:79c4e72a3ab3 245 static void MX_I2C1_Init(void)
caa45040 9:79c4e72a3ab3 246 {
caa45040 9:79c4e72a3ab3 247
caa45040 9:79c4e72a3ab3 248 /* USER CODE BEGIN I2C1_Init 0 */
caa45040 9:79c4e72a3ab3 249
caa45040 9:79c4e72a3ab3 250 /* USER CODE END I2C1_Init 0 */
caa45040 9:79c4e72a3ab3 251
caa45040 9:79c4e72a3ab3 252 /* USER CODE BEGIN I2C1_Init 1 */
caa45040 9:79c4e72a3ab3 253
caa45040 9:79c4e72a3ab3 254 /* USER CODE END I2C1_Init 1 */
caa45040 9:79c4e72a3ab3 255 hi2c1.Instance = I2C1;
caa45040 9:79c4e72a3ab3 256 hi2c1.Init.Timing = 0x00707CBB;
caa45040 9:79c4e72a3ab3 257 hi2c1.Init.OwnAddress1 = 0;
caa45040 9:79c4e72a3ab3 258 hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
caa45040 9:79c4e72a3ab3 259 hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
caa45040 9:79c4e72a3ab3 260 hi2c1.Init.OwnAddress2 = 0;
caa45040 9:79c4e72a3ab3 261 hi2c1.Init.OwnAddress2Masks = I2C_OA2_NOMASK;
caa45040 9:79c4e72a3ab3 262 hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
caa45040 9:79c4e72a3ab3 263 hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
caa45040 9:79c4e72a3ab3 264 if (HAL_I2C_Init(&hi2c1) != HAL_OK)
caa45040 9:79c4e72a3ab3 265 {
caa45040 9:79c4e72a3ab3 266 Error_Handler();
caa45040 9:79c4e72a3ab3 267 }
caa45040 9:79c4e72a3ab3 268 /** Configure Analogue filter
caa45040 9:79c4e72a3ab3 269 */
caa45040 9:79c4e72a3ab3 270 if (HAL_I2CEx_ConfigAnalogFilter(&hi2c1, I2C_ANALOGFILTER_ENABLE) != HAL_OK)
caa45040 9:79c4e72a3ab3 271 {
caa45040 9:79c4e72a3ab3 272 Error_Handler();
caa45040 9:79c4e72a3ab3 273 }
caa45040 9:79c4e72a3ab3 274 /** Configure Digital filter
caa45040 9:79c4e72a3ab3 275 */
caa45040 9:79c4e72a3ab3 276 if (HAL_I2CEx_ConfigDigitalFilter(&hi2c1, 0) != HAL_OK)
caa45040 9:79c4e72a3ab3 277 {
caa45040 9:79c4e72a3ab3 278 Error_Handler();
caa45040 9:79c4e72a3ab3 279 }
caa45040 9:79c4e72a3ab3 280 /* USER CODE BEGIN I2C1_Init 2 */
caa45040 9:79c4e72a3ab3 281
caa45040 9:79c4e72a3ab3 282 /* USER CODE END I2C1_Init 2 */
caa45040 9:79c4e72a3ab3 283
caa45040 9:79c4e72a3ab3 284 }
caa45040 9:79c4e72a3ab3 285
caa45040 9:79c4e72a3ab3 286 /**
caa45040 9:79c4e72a3ab3 287 * @brief USART2 Initialization Function
caa45040 9:79c4e72a3ab3 288 * @param None
caa45040 9:79c4e72a3ab3 289 * @retval None
caa45040 9:79c4e72a3ab3 290 */
caa45040 9:79c4e72a3ab3 291 static void MX_USART2_UART_Init(void)
caa45040 9:79c4e72a3ab3 292 {
caa45040 9:79c4e72a3ab3 293
caa45040 9:79c4e72a3ab3 294 /* USER CODE BEGIN USART2_Init 0 */
caa45040 9:79c4e72a3ab3 295
caa45040 9:79c4e72a3ab3 296 /* USER CODE END USART2_Init 0 */
caa45040 9:79c4e72a3ab3 297
caa45040 9:79c4e72a3ab3 298 /* USER CODE BEGIN USART2_Init 1 */
caa45040 9:79c4e72a3ab3 299
caa45040 9:79c4e72a3ab3 300 /* USER CODE END USART2_Init 1 */
caa45040 9:79c4e72a3ab3 301 huart2.Instance = USART2;
caa45040 9:79c4e72a3ab3 302 huart2.Init.BaudRate = 115200;
caa45040 9:79c4e72a3ab3 303 huart2.Init.WordLength = UART_WORDLENGTH_8B;
caa45040 9:79c4e72a3ab3 304 huart2.Init.StopBits = UART_STOPBITS_1;
caa45040 9:79c4e72a3ab3 305 huart2.Init.Parity = UART_PARITY_NONE;
caa45040 9:79c4e72a3ab3 306 huart2.Init.Mode = UART_MODE_TX_RX;
caa45040 9:79c4e72a3ab3 307 huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE;
caa45040 9:79c4e72a3ab3 308 huart2.Init.OverSampling = UART_OVERSAMPLING_16;
caa45040 9:79c4e72a3ab3 309 huart2.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
caa45040 9:79c4e72a3ab3 310 huart2.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
caa45040 9:79c4e72a3ab3 311 if (HAL_UART_Init(&huart2) != HAL_OK)
caa45040 9:79c4e72a3ab3 312 {
caa45040 9:79c4e72a3ab3 313 Error_Handler();
caa45040 9:79c4e72a3ab3 314 }
caa45040 9:79c4e72a3ab3 315 /* USER CODE BEGIN USART2_Init 2 */
caa45040 9:79c4e72a3ab3 316
caa45040 9:79c4e72a3ab3 317 /* USER CODE END USART2_Init 2 */
caa45040 9:79c4e72a3ab3 318
caa45040 9:79c4e72a3ab3 319 }
caa45040 9:79c4e72a3ab3 320
caa45040 9:79c4e72a3ab3 321 /**
caa45040 9:79c4e72a3ab3 322 * @brief GPIO Initialization Function
caa45040 9:79c4e72a3ab3 323 * @param None
caa45040 9:79c4e72a3ab3 324 * @retval None
caa45040 9:79c4e72a3ab3 325 */
caa45040 9:79c4e72a3ab3 326 static void MX_GPIO_Init(void)
caa45040 9:79c4e72a3ab3 327 {
caa45040 9:79c4e72a3ab3 328 GPIO_InitTypeDef GPIO_InitStruct = {0};
caa45040 9:79c4e72a3ab3 329
caa45040 9:79c4e72a3ab3 330 /* GPIO Ports Clock Enable */
caa45040 9:79c4e72a3ab3 331 __HAL_RCC_GPIOC_CLK_ENABLE();
caa45040 9:79c4e72a3ab3 332 __HAL_RCC_GPIOA_CLK_ENABLE();
caa45040 9:79c4e72a3ab3 333 __HAL_RCC_GPIOB_CLK_ENABLE();
caa45040 9:79c4e72a3ab3 334
caa45040 9:79c4e72a3ab3 335 /*Configure GPIO pin Output Level */
caa45040 9:79c4e72a3ab3 336 HAL_GPIO_WritePin(LD3_GPIO_Port, LD3_Pin, GPIO_PIN_RESET);
caa45040 9:79c4e72a3ab3 337
caa45040 9:79c4e72a3ab3 338 /*Configure GPIO pin : LD3_Pin */
caa45040 9:79c4e72a3ab3 339 GPIO_InitStruct.Pin = LD3_Pin;
caa45040 9:79c4e72a3ab3 340 GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
caa45040 9:79c4e72a3ab3 341 GPIO_InitStruct.Pull = GPIO_NOPULL;
caa45040 9:79c4e72a3ab3 342 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
caa45040 9:79c4e72a3ab3 343 HAL_GPIO_Init(LD3_GPIO_Port, &GPIO_InitStruct);
caa45040 9:79c4e72a3ab3 344
caa45040 9:79c4e72a3ab3 345 }
caa45040 9:79c4e72a3ab3 346
caa45040 9:79c4e72a3ab3 347 /* USER CODE BEGIN 4 */
caa45040 9:79c4e72a3ab3 348
caa45040 9:79c4e72a3ab3 349 /* USER CODE END 4 */
caa45040 9:79c4e72a3ab3 350
caa45040 9:79c4e72a3ab3 351 /**
caa45040 9:79c4e72a3ab3 352 * @brief This function is executed in case of error occurrence.
caa45040 9:79c4e72a3ab3 353 * @retval None
caa45040 9:79c4e72a3ab3 354 */
caa45040 9:79c4e72a3ab3 355 void Error_Handler(void)
caa45040 9:79c4e72a3ab3 356 {
caa45040 9:79c4e72a3ab3 357 /* USER CODE BEGIN Error_Handler_Debug */
caa45040 9:79c4e72a3ab3 358 /* User can add his own implementation to report the HAL error return state */
caa45040 9:79c4e72a3ab3 359 __disable_irq();
caa45040 9:79c4e72a3ab3 360 while (1)
caa45040 9:79c4e72a3ab3 361 {
caa45040 9:79c4e72a3ab3 362 }
caa45040 9:79c4e72a3ab3 363 /* USER CODE END Error_Handler_Debug */
caa45040 9:79c4e72a3ab3 364 }
caa45040 9:79c4e72a3ab3 365
caa45040 9:79c4e72a3ab3 366 #ifdef USE_FULL_ASSERT
caa45040 9:79c4e72a3ab3 367 /**
caa45040 9:79c4e72a3ab3 368 * @brief Reports the name of the source file and the source line number
caa45040 9:79c4e72a3ab3 369 * where the assert_param error has occurred.
caa45040 9:79c4e72a3ab3 370 * @param file: pointer to the source file name
caa45040 9:79c4e72a3ab3 371 * @param line: assert_param error line source number
caa45040 9:79c4e72a3ab3 372 * @retval None
caa45040 9:79c4e72a3ab3 373 */
caa45040 9:79c4e72a3ab3 374 void assert_failed(uint8_t *file, uint32_t line)
caa45040 9:79c4e72a3ab3 375 {
caa45040 9:79c4e72a3ab3 376 /* USER CODE BEGIN 6 */
caa45040 9:79c4e72a3ab3 377 /* User can add his own implementation to report the file name and line number,
caa45040 9:79c4e72a3ab3 378 ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
caa45040 9:79c4e72a3ab3 379 /* USER CODE END 6 */
caa45040 9:79c4e72a3ab3 380 }
caa45040 9:79c4e72a3ab3 381 #endif /* USE_FULL_ASSERT */
caa45040 9:79c4e72a3ab3 382
caa45040 9:79c4e72a3ab3 383 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
caa45040 9:79c4e72a3ab3 384