f303_h_p1 1

Dependencies:   mbed

Committer:
caa45040
Date:
Fri May 06 14:22:30 2022 +0000
Revision:
26:a047b389adfd
Parent:
1:bad45e3ee8ec
i2c_slave_HC_SR04_010_BIN re

Who changed what in which revision?

UserRevisionLine numberNew contents of line
caa45040 1:bad45e3ee8ec 1 /* USER CODE BEGIN Header */
caa45040 1:bad45e3ee8ec 2 /**
caa45040 1:bad45e3ee8ec 3 ******************************************************************************
caa45040 1:bad45e3ee8ec 4 * @file : main.c
caa45040 1:bad45e3ee8ec 5 * @brief : Main program body
caa45040 1:bad45e3ee8ec 6 ******************************************************************************
caa45040 1:bad45e3ee8ec 7 * @attention
caa45040 1:bad45e3ee8ec 8 *
caa45040 1:bad45e3ee8ec 9 * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
caa45040 1:bad45e3ee8ec 10 * All rights reserved.</center></h2>
caa45040 1:bad45e3ee8ec 11 *
caa45040 1:bad45e3ee8ec 12 * This software component is licensed by ST under BSD 3-Clause license,
caa45040 1:bad45e3ee8ec 13 * the "License"; You may not use this file except in compliance with the
caa45040 1:bad45e3ee8ec 14 * License. You may obtain a copy of the License at:
caa45040 1:bad45e3ee8ec 15 * opensource.org/licenses/BSD-3-Clause
caa45040 1:bad45e3ee8ec 16 *
caa45040 1:bad45e3ee8ec 17 ******************************************************************************
caa45040 1:bad45e3ee8ec 18 */
caa45040 1:bad45e3ee8ec 19 /* USER CODE END Header */
caa45040 1:bad45e3ee8ec 20 /* Includes ------------------------------------------------------------------*/
caa45040 1:bad45e3ee8ec 21 #include "main.h"
caa45040 1:bad45e3ee8ec 22
caa45040 1:bad45e3ee8ec 23 /* Private includes ----------------------------------------------------------*/
caa45040 1:bad45e3ee8ec 24 /* USER CODE BEGIN Includes */
caa45040 1:bad45e3ee8ec 25
caa45040 1:bad45e3ee8ec 26 /* USER CODE END Includes */
caa45040 1:bad45e3ee8ec 27
caa45040 1:bad45e3ee8ec 28 /* Private typedef -----------------------------------------------------------*/
caa45040 1:bad45e3ee8ec 29 /* USER CODE BEGIN PTD */
caa45040 1:bad45e3ee8ec 30
caa45040 1:bad45e3ee8ec 31 /* USER CODE END PTD */
caa45040 1:bad45e3ee8ec 32
caa45040 1:bad45e3ee8ec 33 /* Private define ------------------------------------------------------------*/
caa45040 1:bad45e3ee8ec 34 /* USER CODE BEGIN PD */
caa45040 1:bad45e3ee8ec 35 /* USER CODE END PD */
caa45040 1:bad45e3ee8ec 36
caa45040 1:bad45e3ee8ec 37 /* Private macro -------------------------------------------------------------*/
caa45040 1:bad45e3ee8ec 38 /* USER CODE BEGIN PM */
caa45040 1:bad45e3ee8ec 39
caa45040 1:bad45e3ee8ec 40 /* USER CODE END PM */
caa45040 1:bad45e3ee8ec 41
caa45040 1:bad45e3ee8ec 42 /* Private variables ---------------------------------------------------------*/
caa45040 1:bad45e3ee8ec 43 UART_HandleTypeDef huart2;
caa45040 1:bad45e3ee8ec 44
caa45040 1:bad45e3ee8ec 45 /* USER CODE BEGIN PV */
caa45040 1:bad45e3ee8ec 46
caa45040 1:bad45e3ee8ec 47 /* USER CODE END PV */
caa45040 1:bad45e3ee8ec 48
caa45040 1:bad45e3ee8ec 49 /* Private function prototypes -----------------------------------------------*/
caa45040 1:bad45e3ee8ec 50 void SystemClock_Config(void);
caa45040 1:bad45e3ee8ec 51 static void MX_GPIO_Init(void);
caa45040 1:bad45e3ee8ec 52 static void MX_USART2_UART_Init(void);
caa45040 1:bad45e3ee8ec 53 /* USER CODE BEGIN PFP */
caa45040 1:bad45e3ee8ec 54
caa45040 1:bad45e3ee8ec 55 /* USER CODE END PFP */
caa45040 1:bad45e3ee8ec 56
caa45040 1:bad45e3ee8ec 57 /* Private user code ---------------------------------------------------------*/
caa45040 1:bad45e3ee8ec 58 /* USER CODE BEGIN 0 */
caa45040 1:bad45e3ee8ec 59
caa45040 1:bad45e3ee8ec 60 /* USER CODE END 0 */
caa45040 1:bad45e3ee8ec 61
caa45040 1:bad45e3ee8ec 62 /**
caa45040 1:bad45e3ee8ec 63 * @brief The application entry point.
caa45040 1:bad45e3ee8ec 64 * @retval int
caa45040 1:bad45e3ee8ec 65 */
caa45040 1:bad45e3ee8ec 66 int main(void)
caa45040 1:bad45e3ee8ec 67 {
caa45040 1:bad45e3ee8ec 68 /* USER CODE BEGIN 1 */
caa45040 1:bad45e3ee8ec 69
caa45040 1:bad45e3ee8ec 70 /* USER CODE END 1 */
caa45040 1:bad45e3ee8ec 71
caa45040 1:bad45e3ee8ec 72 /* MCU Configuration--------------------------------------------------------*/
caa45040 1:bad45e3ee8ec 73
caa45040 1:bad45e3ee8ec 74 /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
caa45040 1:bad45e3ee8ec 75 HAL_Init();
caa45040 1:bad45e3ee8ec 76
caa45040 1:bad45e3ee8ec 77 /* USER CODE BEGIN Init */
caa45040 1:bad45e3ee8ec 78
caa45040 1:bad45e3ee8ec 79 /* USER CODE END Init */
caa45040 1:bad45e3ee8ec 80
caa45040 1:bad45e3ee8ec 81 /* Configure the system clock */
caa45040 1:bad45e3ee8ec 82 SystemClock_Config();
caa45040 1:bad45e3ee8ec 83
caa45040 1:bad45e3ee8ec 84 /* USER CODE BEGIN SysInit */
caa45040 1:bad45e3ee8ec 85
caa45040 1:bad45e3ee8ec 86 /* USER CODE END SysInit */
caa45040 1:bad45e3ee8ec 87
caa45040 1:bad45e3ee8ec 88 /* Initialize all configured peripherals */
caa45040 1:bad45e3ee8ec 89 MX_GPIO_Init();
caa45040 1:bad45e3ee8ec 90 MX_USART2_UART_Init();
caa45040 1:bad45e3ee8ec 91 /* USER CODE BEGIN 2 */
caa45040 1:bad45e3ee8ec 92
caa45040 1:bad45e3ee8ec 93 /* USER CODE END 2 */
caa45040 1:bad45e3ee8ec 94
caa45040 1:bad45e3ee8ec 95 /* Infinite loop */
caa45040 1:bad45e3ee8ec 96 /* USER CODE BEGIN WHILE */
caa45040 1:bad45e3ee8ec 97 while (1)
caa45040 1:bad45e3ee8ec 98 {
caa45040 1:bad45e3ee8ec 99 /* USER CODE END WHILE */
caa45040 1:bad45e3ee8ec 100
caa45040 1:bad45e3ee8ec 101 HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_SET);
caa45040 1:bad45e3ee8ec 102
caa45040 1:bad45e3ee8ec 103 HAL_Delay(1000);
caa45040 1:bad45e3ee8ec 104
caa45040 1:bad45e3ee8ec 105 HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_RESET);
caa45040 1:bad45e3ee8ec 106
caa45040 1:bad45e3ee8ec 107 HAL_Delay(1000);
caa45040 1:bad45e3ee8ec 108
caa45040 1:bad45e3ee8ec 109 /* USER CODE BEGIN 3 */
caa45040 1:bad45e3ee8ec 110 }
caa45040 1:bad45e3ee8ec 111 /* USER CODE END 3 */
caa45040 1:bad45e3ee8ec 112 }
caa45040 1:bad45e3ee8ec 113
caa45040 1:bad45e3ee8ec 114 /**
caa45040 1:bad45e3ee8ec 115 * @brief System Clock Configuration
caa45040 1:bad45e3ee8ec 116 * @retval None
caa45040 1:bad45e3ee8ec 117 */
caa45040 1:bad45e3ee8ec 118 void SystemClock_Config(void)
caa45040 1:bad45e3ee8ec 119 {
caa45040 1:bad45e3ee8ec 120 RCC_OscInitTypeDef RCC_OscInitStruct = {0};
caa45040 1:bad45e3ee8ec 121 RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
caa45040 1:bad45e3ee8ec 122
caa45040 1:bad45e3ee8ec 123 /** Initializes the RCC Oscillators according to the specified parameters
caa45040 1:bad45e3ee8ec 124 * in the RCC_OscInitTypeDef structure.
caa45040 1:bad45e3ee8ec 125 */
caa45040 1:bad45e3ee8ec 126 RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
caa45040 1:bad45e3ee8ec 127 RCC_OscInitStruct.HSIState = RCC_HSI_ON;
caa45040 1:bad45e3ee8ec 128 RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
caa45040 1:bad45e3ee8ec 129 RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;
caa45040 1:bad45e3ee8ec 130 if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
caa45040 1:bad45e3ee8ec 131 {
caa45040 1:bad45e3ee8ec 132 Error_Handler();
caa45040 1:bad45e3ee8ec 133 }
caa45040 1:bad45e3ee8ec 134 /** Initializes the CPU, AHB and APB buses clocks
caa45040 1:bad45e3ee8ec 135 */
caa45040 1:bad45e3ee8ec 136 RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
caa45040 1:bad45e3ee8ec 137 |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
caa45040 1:bad45e3ee8ec 138 RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI;
caa45040 1:bad45e3ee8ec 139 RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
caa45040 1:bad45e3ee8ec 140 RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
caa45040 1:bad45e3ee8ec 141 RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
caa45040 1:bad45e3ee8ec 142
caa45040 1:bad45e3ee8ec 143 if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK)
caa45040 1:bad45e3ee8ec 144 {
caa45040 1:bad45e3ee8ec 145 Error_Handler();
caa45040 1:bad45e3ee8ec 146 }
caa45040 1:bad45e3ee8ec 147 }
caa45040 1:bad45e3ee8ec 148
caa45040 1:bad45e3ee8ec 149 /**
caa45040 1:bad45e3ee8ec 150 * @brief USART2 Initialization Function
caa45040 1:bad45e3ee8ec 151 * @param None
caa45040 1:bad45e3ee8ec 152 * @retval None
caa45040 1:bad45e3ee8ec 153 */
caa45040 1:bad45e3ee8ec 154 static void MX_USART2_UART_Init(void)
caa45040 1:bad45e3ee8ec 155 {
caa45040 1:bad45e3ee8ec 156
caa45040 1:bad45e3ee8ec 157 /* USER CODE BEGIN USART2_Init 0 */
caa45040 1:bad45e3ee8ec 158
caa45040 1:bad45e3ee8ec 159 /* USER CODE END USART2_Init 0 */
caa45040 1:bad45e3ee8ec 160
caa45040 1:bad45e3ee8ec 161 /* USER CODE BEGIN USART2_Init 1 */
caa45040 1:bad45e3ee8ec 162
caa45040 1:bad45e3ee8ec 163 /* USER CODE END USART2_Init 1 */
caa45040 1:bad45e3ee8ec 164 huart2.Instance = USART2;
caa45040 1:bad45e3ee8ec 165 huart2.Init.BaudRate = 38400;
caa45040 1:bad45e3ee8ec 166 huart2.Init.WordLength = UART_WORDLENGTH_8B;
caa45040 1:bad45e3ee8ec 167 huart2.Init.StopBits = UART_STOPBITS_1;
caa45040 1:bad45e3ee8ec 168 huart2.Init.Parity = UART_PARITY_NONE;
caa45040 1:bad45e3ee8ec 169 huart2.Init.Mode = UART_MODE_TX_RX;
caa45040 1:bad45e3ee8ec 170 huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE;
caa45040 1:bad45e3ee8ec 171 huart2.Init.OverSampling = UART_OVERSAMPLING_16;
caa45040 1:bad45e3ee8ec 172 huart2.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
caa45040 1:bad45e3ee8ec 173 huart2.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
caa45040 1:bad45e3ee8ec 174 if (HAL_UART_Init(&huart2) != HAL_OK)
caa45040 1:bad45e3ee8ec 175 {
caa45040 1:bad45e3ee8ec 176 Error_Handler();
caa45040 1:bad45e3ee8ec 177 }
caa45040 1:bad45e3ee8ec 178 /* USER CODE BEGIN USART2_Init 2 */
caa45040 1:bad45e3ee8ec 179
caa45040 1:bad45e3ee8ec 180 /* USER CODE END USART2_Init 2 */
caa45040 1:bad45e3ee8ec 181
caa45040 1:bad45e3ee8ec 182 }
caa45040 1:bad45e3ee8ec 183
caa45040 1:bad45e3ee8ec 184 /**
caa45040 1:bad45e3ee8ec 185 * @brief GPIO Initialization Function
caa45040 1:bad45e3ee8ec 186 * @param None
caa45040 1:bad45e3ee8ec 187 * @retval None
caa45040 1:bad45e3ee8ec 188 */
caa45040 1:bad45e3ee8ec 189 static void MX_GPIO_Init(void)
caa45040 1:bad45e3ee8ec 190 {
caa45040 1:bad45e3ee8ec 191 GPIO_InitTypeDef GPIO_InitStruct = {0};
caa45040 1:bad45e3ee8ec 192
caa45040 1:bad45e3ee8ec 193 /* GPIO Ports Clock Enable */
caa45040 1:bad45e3ee8ec 194 __HAL_RCC_GPIOF_CLK_ENABLE();
caa45040 1:bad45e3ee8ec 195 __HAL_RCC_GPIOA_CLK_ENABLE();
caa45040 1:bad45e3ee8ec 196 __HAL_RCC_GPIOB_CLK_ENABLE();
caa45040 1:bad45e3ee8ec 197
caa45040 1:bad45e3ee8ec 198 /*Configure GPIO pin Output Level */
caa45040 1:bad45e3ee8ec 199 HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_RESET);
caa45040 1:bad45e3ee8ec 200
caa45040 1:bad45e3ee8ec 201 /*Configure GPIO pin : PB3 */
caa45040 1:bad45e3ee8ec 202 GPIO_InitStruct.Pin = GPIO_PIN_3;
caa45040 1:bad45e3ee8ec 203 GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
caa45040 1:bad45e3ee8ec 204 GPIO_InitStruct.Pull = GPIO_NOPULL;
caa45040 1:bad45e3ee8ec 205 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
caa45040 1:bad45e3ee8ec 206 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
caa45040 1:bad45e3ee8ec 207
caa45040 1:bad45e3ee8ec 208 }
caa45040 1:bad45e3ee8ec 209
caa45040 1:bad45e3ee8ec 210 /* USER CODE BEGIN 4 */
caa45040 1:bad45e3ee8ec 211
caa45040 1:bad45e3ee8ec 212 /* USER CODE END 4 */
caa45040 1:bad45e3ee8ec 213
caa45040 1:bad45e3ee8ec 214 /**
caa45040 1:bad45e3ee8ec 215 * @brief This function is executed in case of error occurrence.
caa45040 1:bad45e3ee8ec 216 * @retval None
caa45040 1:bad45e3ee8ec 217 */
caa45040 1:bad45e3ee8ec 218 void Error_Handler(void)
caa45040 1:bad45e3ee8ec 219 {
caa45040 1:bad45e3ee8ec 220 /* USER CODE BEGIN Error_Handler_Debug */
caa45040 1:bad45e3ee8ec 221 /* User can add his own implementation to report the HAL error return state */
caa45040 1:bad45e3ee8ec 222 __disable_irq();
caa45040 1:bad45e3ee8ec 223 while (1)
caa45040 1:bad45e3ee8ec 224 {
caa45040 1:bad45e3ee8ec 225 }
caa45040 1:bad45e3ee8ec 226 /* USER CODE END Error_Handler_Debug */
caa45040 1:bad45e3ee8ec 227 }
caa45040 1:bad45e3ee8ec 228
caa45040 1:bad45e3ee8ec 229 #ifdef USE_FULL_ASSERT
caa45040 1:bad45e3ee8ec 230 /**
caa45040 1:bad45e3ee8ec 231 * @brief Reports the name of the source file and the source line number
caa45040 1:bad45e3ee8ec 232 * where the assert_param error has occurred.
caa45040 1:bad45e3ee8ec 233 * @param file: pointer to the source file name
caa45040 1:bad45e3ee8ec 234 * @param line: assert_param error line source number
caa45040 1:bad45e3ee8ec 235 * @retval None
caa45040 1:bad45e3ee8ec 236 */
caa45040 1:bad45e3ee8ec 237 void assert_failed(uint8_t *file, uint32_t line)
caa45040 1:bad45e3ee8ec 238 {
caa45040 1:bad45e3ee8ec 239 /* USER CODE BEGIN 6 */
caa45040 1:bad45e3ee8ec 240 /* User can add his own implementation to report the file name and line number,
caa45040 1:bad45e3ee8ec 241 ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
caa45040 1:bad45e3ee8ec 242 /* USER CODE END 6 */
caa45040 1:bad45e3ee8ec 243 }
caa45040 1:bad45e3ee8ec 244 #endif /* USE_FULL_ASSERT */
caa45040 1:bad45e3ee8ec 245
caa45040 1:bad45e3ee8ec 246 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
caa45040 1:bad45e3ee8ec 247