From 179c24047c7bb14f29311029669ee1cb022ac25f Mon Sep 17 00:00:00 2001 From: Soothsayerrr Date: Thu, 19 Jun 2025 12:12:38 -0700 Subject: [PATCH] Add working 2x2 matrix keypad main.c --- firmware/components/matrix_keypad/main.c | 604 +++++++++++++++++++++++ 1 file changed, 604 insertions(+) create mode 100644 firmware/components/matrix_keypad/main.c diff --git a/firmware/components/matrix_keypad/main.c b/firmware/components/matrix_keypad/main.c new file mode 100644 index 00000000..9b1f5f38 --- /dev/null +++ b/firmware/components/matrix_keypad/main.c @@ -0,0 +1,604 @@ +#include "main.h" +#include +#include + +/* Private variables ---------------------------------------------------------*/ +UART_HandleTypeDef huart2; +GPIO_InitTypeDef GPIO_InitStructPrivate = {0}; +uint32_t previousMillis = 0; +uint32_t currentMillis = 0; +uint8_t keyPressed = 0; + +/* Private function prototypes -----------------------------------------------*/ +void SystemClock_Config(void); +static void MX_GPIO_Init(void); +static void MX_USART2_UART_Init(void); + +void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) +{ + currentMillis = HAL_GetTick(); + if (currentMillis - previousMillis > 10) // Debounce delay + { + /* Set PB6, PB7 as input (to scan) */ + GPIO_InitStructPrivate.Pin = GPIO_PIN_6 | GPIO_PIN_7; + GPIO_InitStructPrivate.Mode = GPIO_MODE_INPUT; + GPIO_InitStructPrivate.Pull = GPIO_NOPULL; + GPIO_InitStructPrivate.Speed = GPIO_SPEED_FREQ_LOW; + HAL_GPIO_Init(GPIOB, &GPIO_InitStructPrivate); + + /* --------- Row 1 LOW (PA15), Row 2 HIGH (PB3) --------- */ + HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15, GPIO_PIN_RESET); + HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_SET); + + if (GPIO_Pin == GPIO_PIN_6 && HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_6)) + keyPressed = '1'; + else if (GPIO_Pin == GPIO_PIN_7 && HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_7)) + keyPressed = '2'; + + /* --------- Row 1 HIGH, Row 2 LOW --------- */ + HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15, GPIO_PIN_SET); + HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_RESET); + + if (GPIO_Pin == GPIO_PIN_6 && HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_6)) + keyPressed = '3'; + else if (GPIO_Pin == GPIO_PIN_7 && HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_7)) + keyPressed = '4'; + + /* Reset rows to HIGH */ + HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15, GPIO_PIN_SET); + HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_SET); + + /* Set columns back to EXTI */ + GPIO_InitStructPrivate.Mode = GPIO_MODE_IT_RISING; + GPIO_InitStructPrivate.Pull = GPIO_PULLDOWN; + HAL_GPIO_Init(GPIOB, &GPIO_InitStructPrivate); + + previousMillis = currentMillis; + } +} + +int main(void) +{ + HAL_Init(); + SystemClock_Config(); + MX_GPIO_Init(); + MX_USART2_UART_Init(); + + /* Set all rows HIGH initially */ + HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15, GPIO_PIN_SET); + HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_SET); + + while (1) + { + if (keyPressed != 0) + { + char msg[16]; + snprintf(msg, sizeof(msg), "Key: %c\r\n", keyPressed); + HAL_UART_Transmit(&huart2, (uint8_t*)msg, strlen(msg), HAL_MAX_DELAY); + keyPressed = 0; + } + } +} + +/* GPIO, Clock, and UART Init below — don't modify unless needed */ + +void SystemClock_Config(void) +{ + RCC_OscInitTypeDef RCC_OscInitStruct = {0}; + RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; + + RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; + RCC_OscInitStruct.HSIState = RCC_HSI_ON; + RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; + RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; + HAL_RCC_OscConfig(&RCC_OscInitStruct); + + RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK + | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2; + RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI; + RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; + RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; + RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; + HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0); +} + +static void MX_USART2_UART_Init(void) +{ + huart2.Instance = USART2; + huart2.Init.BaudRate = 115200; + huart2.Init.WordLength = UART_WORDLENGTH_8B; + huart2.Init.StopBits = UART_STOPBITS_1; + huart2.Init.Parity = UART_PARITY_NONE; + huart2.Init.Mode = UART_MODE_TX_RX; + huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE; + huart2.Init.OverSampling = UART_OVERSAMPLING_16; + HAL_UART_Init(&huart2); +} + +static void MX_GPIO_Init(void) +{ + GPIO_InitTypeDef GPIO_InitStruct = {0}; + + __HAL_RCC_GPIOA_CLK_ENABLE(); + __HAL_RCC_GPIOB_CLK_ENABLE(); + + /* Configure row outputs: PA15, PB3 */ + HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15, GPIO_PIN_RESET); + HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_RESET); + + GPIO_InitStruct.Pin = GPIO_PIN_15; + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + + GPIO_InitStruct.Pin = GPIO_PIN_3; + HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); + + /* Configure column inputs with EXTI: PB6, PB7 */ + GPIO_InitStruct.Pin = GPIO_PIN_6 | GPIO_PIN_7; + GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING; + GPIO_InitStruct.Pull = GPIO_PULLDOWN; + HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); + + /* Enable EXTI interrupts */ + HAL_NVIC_SetPriority(EXTI9_5_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(EXTI9_5_IRQn); +} + + + +///* USER CODE BEGIN Header */ +///** +// ****************************************************************************** +// * @file : main.c +// * @brief : Main program body +// ****************************************************************************** +// * @attention +// * +// * Copyright (c) 2025 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 "main.h" +// +///* Private includes ----------------------------------------------------------*/ +///* USER CODE BEGIN Includes */ +// +///* USER CODE END Includes */ +// +///* Private typedef -----------------------------------------------------------*/ +///* USER CODE BEGIN PTD */ +// +///* USER CODE END PTD */ +// +///* Private define ------------------------------------------------------------*/ +///* USER CODE BEGIN PD */ +// +///* USER CODE END PD */ +// +///* Private macro -------------------------------------------------------------*/ +///* USER CODE BEGIN PM */ +// +///* USER CODE END PM */ +// +// +// +///* Private variables ---------------------------------------------------------*/ +//UART_HandleTypeDef huart2; +//GPIO_InitTypeDef GPIO_InitStructPrivate = {0}; +//uint32_t previousMillis = 0; +//uint32_t currentMillis = 0; +//uint8_t keyPressed = 0; +// +///* USER CODE BEGIN PV */ +// +///* USER CODE END PV */ +// +///* Private function prototypes -----------------------------------------------*/ +//void SystemClock_Config(void); +//static void MX_GPIO_Init(void); +//static void MX_USART2_UART_Init(void); +///* USER CODE BEGIN PFP */ +// +///* USER CODE END PFP */ +// +///* Private user code ---------------------------------------------------------*/ +///* USER CODE BEGIN 0 */ +// +///* USER CODE END 0 */ +//void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) +//{ +// currentMillis = HAL_GetTick(); +// if (currentMillis - previousMillis > 10) { +// /*Configure GPIO pins : PB6 PB7 PB8 PB9 to GPIO_INPUT*/ +// GPIO_InitStructPrivate.Pin = GPIO_PIN_6|GPIO_PIN_7; +// GPIO_InitStructPrivate.Mode = GPIO_MODE_INPUT; +// GPIO_InitStructPrivate.Pull = GPIO_NOPULL; +// GPIO_InitStructPrivate.Speed = GPIO_SPEED_FREQ_LOW; +// HAL_GPIO_Init(GPIOB, &GPIO_InitStructPrivate); +// +// HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15, 1); +// HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, 0); +//// HAL_GPIO_WritePin(GPIOB, GPIO_PIN_4, 0); +//// HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, 0); +// +// if(GPIO_Pin == GPIO_PIN_6 && HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_6)) +// { +// keyPressed = '1'; +// } +// else if(GPIO_Pin == GPIO_PIN_7 && HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_7)) +// { +// keyPressed = '2'; +// } +//// else if(GPIO_Pin == GPIO_PIN_8 && HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_8)) +//// { +//// keyPressed = 48; //ASCII value of B 66 +//// } +//// else if(GPIO_Pin == GPIO_PIN_9 && HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_9)) +//// { +//// keyPressed = 42; //ASCII value of A 65 +//// } +// +// HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15, GPIO_PIN_SET); +// HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_RESET); +//// HAL_GPIO_WritePin(GPIOB, GPIO_PIN_4, 0); +//// HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, 0); +// if(GPIO_Pin == GPIO_PIN_6 && HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_6)) +// { +// keyPressed = '3'; +// } +// else if(GPIO_Pin == GPIO_PIN_7 && HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_7)) +// { +// keyPressed = '4'; +// } +//// else if(GPIO_Pin == GPIO_PIN_8 && HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_8)) +//// { +//// keyPressed = 56; //ASCII value of 6 54 +//// } +//// else if(GPIO_Pin == GPIO_PIN_9 && HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_9)) +//// { +//// keyPressed = 55; //ASCII value of 3 51 +//// } +// +//// HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15, 0); +//// HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, 0); +//// HAL_GPIO_WritePin(GPIOB, GPIO_PIN_4, 1); +//// HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, 0); +//// if(GPIO_Pin == GPIO_PIN_6 && HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_6)) +//// { +//// keyPressed = 66; //ASCII value of 0 48 +//// } +//// else if(GPIO_Pin == GPIO_PIN_7 && HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_7)) +//// { +//// keyPressed = 54; //ASCII value of 8 56 +//// } +//// else if(GPIO_Pin == GPIO_PIN_8 && HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_8)) +//// { +//// keyPressed = 53; //ASCII value of 5 53 +//// } +//// else if(GPIO_Pin == GPIO_PIN_9 && HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_9)) +//// { +//// keyPressed = 52; //ASCII value of 2 50 +//// } +//// +//// HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15, 0); +//// HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, 0); +//// HAL_GPIO_WritePin(GPIOB, GPIO_PIN_4, 0); +//// HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, 1); +//// if(GPIO_Pin == GPIO_PIN_6 && HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_6)) +//// { +//// keyPressed = 65; //ASCII value of * 42 +//// } +//// else if(GPIO_Pin == GPIO_PIN_7 && HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_7)) +//// { +//// keyPressed = 51; //ASCII value of 7 55 +//// } +//// else if(GPIO_Pin == GPIO_PIN_8 && HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_8)) +//// { +//// keyPressed = 50; //ASCII value of 4 52 +//// } +//// else if(GPIO_Pin == GPIO_PIN_9 && HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_9)) +//// { +//// keyPressed = 49; //ASCII value of 1 49 +//// } +// +// HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15, GPIO_PIN_SET); +// HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_SET); +//// HAL_GPIO_WritePin(GPIOB, GPIO_PIN_4, 1); +//// HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, 1); +// /*Configure GPIO pins : PB6 PB7 PB8 PB9 back to EXTI*/ +// GPIO_InitStructPrivate.Mode = GPIO_MODE_IT_RISING; +// GPIO_InitStructPrivate.Pull = GPIO_PULLDOWN; +// HAL_GPIO_Init(GPIOB, &GPIO_InitStructPrivate); +// previousMillis = currentMillis; +// } +//} +///** +// * @brief The application entry point. +// * @retval int +// */ +//int main(void) +//{ +// +// /* USER CODE BEGIN 1 */ +// +// /* USER CODE END 1 */ +// +// /* MCU Configuration--------------------------------------------------------*/ +// +// /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ +// HAL_Init(); +// +// /* USER CODE BEGIN Init */ +// +// /* USER CODE END Init */ +// +// /* Configure the system clock */ +// SystemClock_Config(); +// +// /* USER CODE BEGIN SysInit */ +// +// /* USER CODE END SysInit */ +// +// /* Initialize all configured peripherals */ +// MX_GPIO_Init(); +// MX_USART2_UART_Init(); +// /* USER CODE BEGIN 2 */ +// HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15, 1); +// HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, 1); +// HAL_GPIO_WritePin(GPIOB, GPIO_PIN_4, 1); +// HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, 1); +// /* USER CODE END 2 */ +// +// /* Infinite loop */ +// /* USER CODE BEGIN WHILE */ +// while (1) +// { +// /* USER CODE END WHILE */ +// +// /* USER CODE BEGIN 3 */ +// } +// /* USER CODE END 3 */ +//} +// +// +//void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) +//{ +// currentMillis = HAL_GetTick(); +// if (currentMillis - previousMillis > 10) // Debouncing check +// { +// /* Configure rows as inputs */ +// GPIO_InitStructPrivate.Pin = GPIO_PIN_6|GPIO_PIN_7; +// GPIO_InitStructPrivate.Mode = GPIO_MODE_INPUT; +// GPIO_InitStructPrivate.Pull = GPIO_NOPULL; +// HAL_GPIO_Init(GPIOB, &GPIO_InitStructPrivate); +// +// /* Scan columns one by one */ +// HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15, GPIO_PIN_RESET); +// HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_SET); +//// HAL_GPIO_WritePin(GPIOB, GPIO_PIN_4, 0); +//// HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, 0); +// +// if(GPIO_Pin == GPIO_PIN_6 && HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_6)) +// keyPressed = '1'; +// else if(GPIO_Pin == GPIO_PIN_7 && HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_7)) +// keyPressed = '2'; +//// else if(GPIO_Pin == GPIO_PIN_8 && HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_8)) +//// keyPressed = 48; // ASCII of '0' +//// else if(GPIO_Pin == GPIO_PIN_9 && HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_9)) +//// keyPressed = 42; // ASCII of '*' +// +// /* Repeat for other columns */ +// HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15, GPIO_PIN_SET); +// HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_RESET); +// +// if(GPIO_Pin == GPIO_PIN_6 && HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_6)) +// keyPressed = '3'; +// else if(GPIO_Pin == GPIO_PIN_7 && HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_7)) +// keyPressed = '4'; +//// else if(GPIO_Pin == GPIO_PIN_8 && HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_8)) +//// keyPressed = 56; // ASCII of '8' +//// else if(GPIO_Pin == GPIO_PIN_9 && HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_9)) +//// keyPressed = 55; // ASCII of '7' +// +//// /* Continue scanning for remaining columns */ +//// HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, 0); +//// HAL_GPIO_WritePin(GPIOB, GPIO_PIN_4, 1); +//// if(GPIO_Pin == GPIO_PIN_6 && HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_6)) +//// keyPressed = 66; // ASCII of 'B' +//// else if(GPIO_Pin == GPIO_PIN_7 && HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_7)) +//// keyPressed = 54; // ASCII of '6' +//// else if(GPIO_Pin == GPIO_PIN_8 && HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_8)) +//// keyPressed = 53; // ASCII of '5' +//// else if(GPIO_Pin == GPIO_PIN_9 && HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_9)) +//// keyPressed = 52; // ASCII of '4' +//// +//// HAL_GPIO_WritePin(GPIOB, GPIO_PIN_4, 0); +//// HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, 1); +//// if(GPIO_Pin == GPIO_PIN_6 && HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_6)) +//// keyPressed = 65; // ASCII of 'A' +//// else if(GPIO_Pin == GPIO_PIN_7 && HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_7)) +//// keyPressed = 51; // ASCII of '3' +//// else if(GPIO_Pin == GPIO_PIN_8 && HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_8)) +//// keyPressed = 50; // ASCII of '2' +//// else if(GPIO_Pin == GPIO_PIN_9 && HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_9)) +//// keyPressed = 49; // ASCII of '1' +// +// /* Reset columns to HIGH */ +// HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15, GPIO_PIN_SET); +// HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_SET); +//// HAL_GPIO_WritePin(GPIOB, GPIO_PIN_4, 1); +//// HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, 1); +// +// /* Set rows back to interrupt mode */ +// GPIO_InitStructPrivate.Mode = GPIO_MODE_IT_RISING; +// GPIO_InitStructPrivate.Pull = GPIO_PULLDOWN; +// HAL_GPIO_Init(GPIOB, &GPIO_InitStructPrivate); +// +// previousMillis = currentMillis; +// } +//} +// +// +/////** +//// * @brief System Clock Configuration +//// * @retval None +//// */ +////void SystemClock_Config(void) +////{ +//// RCC_OscInitTypeDef RCC_OscInitStruct = {0}; +//// RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; +//// +//// /** Initializes the RCC Oscillators according to the specified parameters +//// * in the RCC_OscInitTypeDef structure. +//// */ +//// RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; +//// RCC_OscInitStruct.HSIState = RCC_HSI_ON; +//// RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; +//// RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; +//// if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) +//// { +//// Error_Handler(); +//// } +//// +//// /** Initializes the CPU, AHB and APB buses clocks +//// */ +//// RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK +//// |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; +//// RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI; +//// RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; +//// RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; +//// RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; +//// +//// if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK) +//// { +//// Error_Handler(); +//// } +////} +// +///** +// * @brief USART2 Initialization Function +// * @param None +// * @retval None +// */ +////static void MX_USART2_UART_Init(void) +////{ +//// +//// /* USER CODE BEGIN USART2_Init 0 */ +//// +//// /* USER CODE END USART2_Init 0 */ +//// +//// /* USER CODE BEGIN USART2_Init 1 */ +//// +//// /* USER CODE END USART2_Init 1 */ +//// huart2.Instance = USART2; +//// huart2.Init.BaudRate = 115200; +//// huart2.Init.WordLength = UART_WORDLENGTH_8B; +//// huart2.Init.StopBits = UART_STOPBITS_1; +//// huart2.Init.Parity = UART_PARITY_NONE; +//// huart2.Init.Mode = UART_MODE_TX_RX; +//// huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE; +//// huart2.Init.OverSampling = UART_OVERSAMPLING_16; +//// if (HAL_UART_Init(&huart2) != HAL_OK) +//// { +//// Error_Handler(); +//// } +//// /* USER CODE BEGIN USART2_Init 2 */ +//// +//// /* USER CODE END USART2_Init 2 */ +//// +////} +// +// +// +// +/////** +//// * @brief GPIO Initialization Function +//// * @param None +//// * @retval None +//// */ +////static void MX_GPIO_Init(void) +////{ +//// GPIO_InitTypeDef GPIO_InitStruct = {0}; +//// /* USER CODE BEGIN MX_GPIO_Init_1 */ +//// +//// /* USER CODE END MX_GPIO_Init_1 */ +//// +//// /* GPIO Ports Clock Enable */ +//// __HAL_RCC_GPIOA_CLK_ENABLE(); +//// __HAL_RCC_GPIOB_CLK_ENABLE(); +//// +//// /*Configure GPIO pin Output Level */ +//// HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15, GPIO_PIN_RESET); +//// +//// /*Configure GPIO pin Output Level */ +//// HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5, GPIO_PIN_RESET); +//// +//// /*Configure GPIO pin : PA15 */ +//// GPIO_InitStruct.Pin = GPIO_PIN_15; +//// GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; +//// GPIO_InitStruct.Pull = GPIO_NOPULL; +//// GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; +//// HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); +//// +//// /*Configure GPIO pins : PB3 PB4 PB5 */ +//// GPIO_InitStruct.Pin = GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5; +//// GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; +//// GPIO_InitStruct.Pull = GPIO_NOPULL; +//// GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; +//// HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); +//// +//// /*Configure GPIO pins : PB6 PB7 PB8 PB9 */ +//// GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9; +//// GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING; +//// GPIO_InitStruct.Pull = GPIO_NOPULL; +//// HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); +//// +//// /* USER CODE BEGIN MX_GPIO_Init_2 */ +//// +//// /* USER CODE END MX_GPIO_Init_2 */ +////} +//// +/////* USER CODE BEGIN 4 */ +//// +/////* USER CODE END 4 */ +//// +/////** +//// * @brief This function is executed in case of error occurrence. +//// * @retval None +//// */ +////void Error_Handler(void) +////{ +//// /* USER CODE BEGIN Error_Handler_Debug */ +//// /* User can add his own implementation to report the HAL error return state */ +//// __disable_irq(); +//// while (1) +//// { +//// } +//// /* USER CODE END Error_Handler_Debug */ +////} +//// +////#ifdef USE_FULL_ASSERT +/////** +//// * @brief Reports the name of the source file and the source line number +//// * where the assert_param error has occurred. +//// * @param file: pointer to the source file name +//// * @param line: assert_param error line source number +//// * @retval None +//// */ +////void assert_failed(uint8_t *file, uint32_t line) +////{ +//// /* USER CODE BEGIN 6 */ +//// /* User can add his own implementation to report the file name and line number, +//// ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ +//// /* USER CODE END 6 */ +////} +////#endif /* USE_FULL_ASSERT */