第一次实验-生成后
This commit is contained in:
		
							parent
							
								
									ddd679c34c
								
							
						
					
					
						commit
						39fabf99e4
					
				
							
								
								
									
										49
									
								
								exp1/Core/Inc/gpio.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								exp1/Core/Inc/gpio.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,49 @@
 | 
				
			|||||||
 | 
					/* USER CODE BEGIN Header */
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  ******************************************************************************
 | 
				
			||||||
 | 
					  * @file    gpio.h
 | 
				
			||||||
 | 
					  * @brief   This file contains all the function prototypes for
 | 
				
			||||||
 | 
					  *          the gpio.c file
 | 
				
			||||||
 | 
					  ******************************************************************************
 | 
				
			||||||
 | 
					  * @attention
 | 
				
			||||||
 | 
					  *
 | 
				
			||||||
 | 
					  * Copyright (c) 2024 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 */
 | 
				
			||||||
 | 
					/* Define to prevent recursive inclusion -------------------------------------*/
 | 
				
			||||||
 | 
					#ifndef __GPIO_H__
 | 
				
			||||||
 | 
					#define __GPIO_H__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Includes ------------------------------------------------------------------*/
 | 
				
			||||||
 | 
					#include "main.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE BEGIN Includes */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE END Includes */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE BEGIN Private defines */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE END Private defines */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void MX_GPIO_Init(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE BEGIN Prototypes */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE END Prototypes */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif /*__ GPIO_H__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										71
									
								
								exp1/Core/Inc/main.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								exp1/Core/Inc/main.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,71 @@
 | 
				
			|||||||
 | 
					/* USER CODE BEGIN Header */
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  ******************************************************************************
 | 
				
			||||||
 | 
					  * @file           : main.h
 | 
				
			||||||
 | 
					  * @brief          : Header for main.c file.
 | 
				
			||||||
 | 
					  *                   This file contains the common defines of the application.
 | 
				
			||||||
 | 
					  ******************************************************************************
 | 
				
			||||||
 | 
					  * @attention
 | 
				
			||||||
 | 
					  *
 | 
				
			||||||
 | 
					  * Copyright (c) 2024 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 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Define to prevent recursive inclusion -------------------------------------*/
 | 
				
			||||||
 | 
					#ifndef __MAIN_H
 | 
				
			||||||
 | 
					#define __MAIN_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Includes ------------------------------------------------------------------*/
 | 
				
			||||||
 | 
					#include "stm32g4xx_hal.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Private includes ----------------------------------------------------------*/
 | 
				
			||||||
 | 
					/* USER CODE BEGIN Includes */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE END Includes */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Exported types ------------------------------------------------------------*/
 | 
				
			||||||
 | 
					/* USER CODE BEGIN ET */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE END ET */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Exported constants --------------------------------------------------------*/
 | 
				
			||||||
 | 
					/* USER CODE BEGIN EC */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE END EC */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Exported macro ------------------------------------------------------------*/
 | 
				
			||||||
 | 
					/* USER CODE BEGIN EM */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE END EM */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Exported functions prototypes ---------------------------------------------*/
 | 
				
			||||||
 | 
					void Error_Handler(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE BEGIN EFP */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE END EFP */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Private defines -----------------------------------------------------------*/
 | 
				
			||||||
 | 
					#define TickClock_LED_Pin GPIO_PIN_13
 | 
				
			||||||
 | 
					#define TickClock_LED_GPIO_Port GPIOC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE BEGIN Private defines */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE END Private defines */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* __MAIN_H */
 | 
				
			||||||
							
								
								
									
										380
									
								
								exp1/Core/Inc/stm32g4xx_hal_conf.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										380
									
								
								exp1/Core/Inc/stm32g4xx_hal_conf.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,380 @@
 | 
				
			|||||||
 | 
					/* USER CODE BEGIN Header */
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  ******************************************************************************
 | 
				
			||||||
 | 
					  * @file    stm32g4xx_hal_conf.h
 | 
				
			||||||
 | 
					  * @author  MCD Application Team
 | 
				
			||||||
 | 
					  * @brief   HAL configuration file
 | 
				
			||||||
 | 
					  ******************************************************************************
 | 
				
			||||||
 | 
					 * @attention
 | 
				
			||||||
 | 
					  *
 | 
				
			||||||
 | 
					  * Copyright (c) 2019 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 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Define to prevent recursive inclusion -------------------------------------*/
 | 
				
			||||||
 | 
					#ifndef STM32G4xx_HAL_CONF_H
 | 
				
			||||||
 | 
					#define STM32G4xx_HAL_CONF_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					 extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Exported types ------------------------------------------------------------*/
 | 
				
			||||||
 | 
					/* Exported constants --------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* ########################## Module Selection ############################## */
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  * @brief This is the list of modules to be used in the HAL driver
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define HAL_MODULE_ENABLED
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /*#define HAL_ADC_MODULE_ENABLED   */
 | 
				
			||||||
 | 
					/*#define HAL_COMP_MODULE_ENABLED   */
 | 
				
			||||||
 | 
					/*#define HAL_CORDIC_MODULE_ENABLED   */
 | 
				
			||||||
 | 
					/*#define HAL_CRC_MODULE_ENABLED   */
 | 
				
			||||||
 | 
					/*#define HAL_CRYP_MODULE_ENABLED   */
 | 
				
			||||||
 | 
					/*#define HAL_DAC_MODULE_ENABLED   */
 | 
				
			||||||
 | 
					/*#define HAL_FDCAN_MODULE_ENABLED   */
 | 
				
			||||||
 | 
					/*#define HAL_FMAC_MODULE_ENABLED   */
 | 
				
			||||||
 | 
					/*#define HAL_HRTIM_MODULE_ENABLED   */
 | 
				
			||||||
 | 
					/*#define HAL_IRDA_MODULE_ENABLED   */
 | 
				
			||||||
 | 
					/*#define HAL_IWDG_MODULE_ENABLED   */
 | 
				
			||||||
 | 
					/*#define HAL_I2C_MODULE_ENABLED   */
 | 
				
			||||||
 | 
					/*#define HAL_I2S_MODULE_ENABLED   */
 | 
				
			||||||
 | 
					/*#define HAL_LPTIM_MODULE_ENABLED   */
 | 
				
			||||||
 | 
					/*#define HAL_NAND_MODULE_ENABLED   */
 | 
				
			||||||
 | 
					/*#define HAL_NOR_MODULE_ENABLED   */
 | 
				
			||||||
 | 
					/*#define HAL_OPAMP_MODULE_ENABLED   */
 | 
				
			||||||
 | 
					/*#define HAL_PCD_MODULE_ENABLED   */
 | 
				
			||||||
 | 
					/*#define HAL_QSPI_MODULE_ENABLED   */
 | 
				
			||||||
 | 
					/*#define HAL_RNG_MODULE_ENABLED   */
 | 
				
			||||||
 | 
					/*#define HAL_RTC_MODULE_ENABLED   */
 | 
				
			||||||
 | 
					/*#define HAL_SAI_MODULE_ENABLED   */
 | 
				
			||||||
 | 
					/*#define HAL_SMARTCARD_MODULE_ENABLED   */
 | 
				
			||||||
 | 
					/*#define HAL_SMBUS_MODULE_ENABLED   */
 | 
				
			||||||
 | 
					/*#define HAL_SPI_MODULE_ENABLED   */
 | 
				
			||||||
 | 
					/*#define HAL_SRAM_MODULE_ENABLED   */
 | 
				
			||||||
 | 
					/*#define HAL_TIM_MODULE_ENABLED   */
 | 
				
			||||||
 | 
					/*#define HAL_UART_MODULE_ENABLED   */
 | 
				
			||||||
 | 
					/*#define HAL_USART_MODULE_ENABLED   */
 | 
				
			||||||
 | 
					/*#define HAL_WWDG_MODULE_ENABLED   */
 | 
				
			||||||
 | 
					#define HAL_GPIO_MODULE_ENABLED
 | 
				
			||||||
 | 
					#define HAL_EXTI_MODULE_ENABLED
 | 
				
			||||||
 | 
					#define HAL_DMA_MODULE_ENABLED
 | 
				
			||||||
 | 
					#define HAL_RCC_MODULE_ENABLED
 | 
				
			||||||
 | 
					#define HAL_FLASH_MODULE_ENABLED
 | 
				
			||||||
 | 
					#define HAL_PWR_MODULE_ENABLED
 | 
				
			||||||
 | 
					#define HAL_CORTEX_MODULE_ENABLED
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* ########################## Register Callbacks selection ############################## */
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  * @brief This is the list of modules where register callback can be used
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					#define USE_HAL_ADC_REGISTER_CALLBACKS        0U
 | 
				
			||||||
 | 
					#define USE_HAL_COMP_REGISTER_CALLBACKS       0U
 | 
				
			||||||
 | 
					#define USE_HAL_CORDIC_REGISTER_CALLBACKS     0U
 | 
				
			||||||
 | 
					#define USE_HAL_CRYP_REGISTER_CALLBACKS       0U
 | 
				
			||||||
 | 
					#define USE_HAL_DAC_REGISTER_CALLBACKS        0U
 | 
				
			||||||
 | 
					#define USE_HAL_EXTI_REGISTER_CALLBACKS       0U
 | 
				
			||||||
 | 
					#define USE_HAL_FDCAN_REGISTER_CALLBACKS      0U
 | 
				
			||||||
 | 
					#define USE_HAL_FMAC_REGISTER_CALLBACKS       0U
 | 
				
			||||||
 | 
					#define USE_HAL_HRTIM_REGISTER_CALLBACKS      0U
 | 
				
			||||||
 | 
					#define USE_HAL_I2C_REGISTER_CALLBACKS        0U
 | 
				
			||||||
 | 
					#define USE_HAL_I2S_REGISTER_CALLBACKS        0U
 | 
				
			||||||
 | 
					#define USE_HAL_IRDA_REGISTER_CALLBACKS       0U
 | 
				
			||||||
 | 
					#define USE_HAL_LPTIM_REGISTER_CALLBACKS      0U
 | 
				
			||||||
 | 
					#define USE_HAL_NAND_REGISTER_CALLBACKS       0U
 | 
				
			||||||
 | 
					#define USE_HAL_NOR_REGISTER_CALLBACKS        0U
 | 
				
			||||||
 | 
					#define USE_HAL_OPAMP_REGISTER_CALLBACKS      0U
 | 
				
			||||||
 | 
					#define USE_HAL_PCD_REGISTER_CALLBACKS        0U
 | 
				
			||||||
 | 
					#define USE_HAL_QSPI_REGISTER_CALLBACKS       0U
 | 
				
			||||||
 | 
					#define USE_HAL_RNG_REGISTER_CALLBACKS        0U
 | 
				
			||||||
 | 
					#define USE_HAL_RTC_REGISTER_CALLBACKS        0U
 | 
				
			||||||
 | 
					#define USE_HAL_SAI_REGISTER_CALLBACKS        0U
 | 
				
			||||||
 | 
					#define USE_HAL_SMARTCARD_REGISTER_CALLBACKS  0U
 | 
				
			||||||
 | 
					#define USE_HAL_SMBUS_REGISTER_CALLBACKS      0U
 | 
				
			||||||
 | 
					#define USE_HAL_SPI_REGISTER_CALLBACKS        0U
 | 
				
			||||||
 | 
					#define USE_HAL_SRAM_REGISTER_CALLBACKS       0U
 | 
				
			||||||
 | 
					#define USE_HAL_TIM_REGISTER_CALLBACKS        0U
 | 
				
			||||||
 | 
					#define USE_HAL_UART_REGISTER_CALLBACKS       0U
 | 
				
			||||||
 | 
					#define USE_HAL_USART_REGISTER_CALLBACKS      0U
 | 
				
			||||||
 | 
					#define USE_HAL_WWDG_REGISTER_CALLBACKS       0U
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* ########################## Oscillator Values adaptation ####################*/
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  * @brief Adjust the value of External High Speed oscillator (HSE) used in your application.
 | 
				
			||||||
 | 
					  *        This value is used by the RCC HAL module to compute the system frequency
 | 
				
			||||||
 | 
					  *        (when HSE is used as system clock source, directly or through the PLL).
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					#if !defined  (HSE_VALUE)
 | 
				
			||||||
 | 
					  #define HSE_VALUE    (24000000UL) /*!< Value of the External oscillator in Hz */
 | 
				
			||||||
 | 
					#endif /* HSE_VALUE */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !defined  (HSE_STARTUP_TIMEOUT)
 | 
				
			||||||
 | 
					  #define HSE_STARTUP_TIMEOUT    (100UL)   /*!< Time out for HSE start up, in ms */
 | 
				
			||||||
 | 
					#endif /* HSE_STARTUP_TIMEOUT */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  * @brief Internal High Speed oscillator (HSI) value.
 | 
				
			||||||
 | 
					  *        This value is used by the RCC HAL module to compute the system frequency
 | 
				
			||||||
 | 
					  *        (when HSI is used as system clock source, directly or through the PLL).
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					#if !defined  (HSI_VALUE)
 | 
				
			||||||
 | 
					  #define HSI_VALUE    (16000000UL) /*!< Value of the Internal oscillator in Hz*/
 | 
				
			||||||
 | 
					#endif /* HSI_VALUE */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  * @brief Internal High Speed oscillator (HSI48) value for USB FS and RNG.
 | 
				
			||||||
 | 
					  *        This internal oscillator is mainly dedicated to provide a high precision clock to
 | 
				
			||||||
 | 
					  *        the USB peripheral by means of a special Clock Recovery System (CRS) circuitry.
 | 
				
			||||||
 | 
					  *        When the CRS is not used, the HSI48 RC oscillator runs on it default frequency
 | 
				
			||||||
 | 
					  *        which is subject to manufacturing process variations.
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					#if !defined  (HSI48_VALUE)
 | 
				
			||||||
 | 
					  #define HSI48_VALUE   (48000000UL) /*!< Value of the Internal High Speed oscillator for USB FS/RNG in Hz.
 | 
				
			||||||
 | 
					                                               The real value my vary depending on manufacturing process variations.*/
 | 
				
			||||||
 | 
					#endif /* HSI48_VALUE */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  * @brief Internal Low Speed oscillator (LSI) value.
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					#if !defined  (LSI_VALUE)
 | 
				
			||||||
 | 
					/*!< Value of the Internal Low Speed oscillator in Hz
 | 
				
			||||||
 | 
					The real value may vary depending on the variations in voltage and temperature.*/
 | 
				
			||||||
 | 
					#define LSI_VALUE  (32000UL)     /*!< LSI Typical Value in Hz*/
 | 
				
			||||||
 | 
					#endif /* LSI_VALUE */
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  * @brief External Low Speed oscillator (LSE) value.
 | 
				
			||||||
 | 
					  *        This value is used by the UART, RTC HAL module to compute the system frequency
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					#if !defined  (LSE_VALUE)
 | 
				
			||||||
 | 
					#define LSE_VALUE  (32768UL)    /*!< Value of the External Low Speed oscillator in Hz */
 | 
				
			||||||
 | 
					#endif /* LSE_VALUE */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !defined  (LSE_STARTUP_TIMEOUT)
 | 
				
			||||||
 | 
					#define LSE_STARTUP_TIMEOUT    (5000UL)   /*!< Time out for LSE start up, in ms */
 | 
				
			||||||
 | 
					#endif /* LSE_STARTUP_TIMEOUT */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  * @brief External clock source for I2S and SAI peripherals
 | 
				
			||||||
 | 
					  *        This value is used by the I2S and SAI HAL modules to compute the I2S and SAI clock source
 | 
				
			||||||
 | 
					  *        frequency, this source is inserted directly through I2S_CKIN pad.
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					#if !defined  (EXTERNAL_CLOCK_VALUE)
 | 
				
			||||||
 | 
					#define EXTERNAL_CLOCK_VALUE    (12288000UL) /*!< Value of the External oscillator in Hz*/
 | 
				
			||||||
 | 
					#endif /* EXTERNAL_CLOCK_VALUE */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Tip: To avoid modifying this file each time you need to use different HSE,
 | 
				
			||||||
 | 
					   ===  you can define the HSE value in your toolchain compiler preprocessor. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* ########################### System Configuration ######################### */
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  * @brief This is the HAL system configuration section
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define  VDD_VALUE                   (3300UL) /*!< Value of VDD in mv */
 | 
				
			||||||
 | 
					#define  TICK_INT_PRIORITY           (15UL)    /*!< tick interrupt priority (lowest by default)  */
 | 
				
			||||||
 | 
					#define  USE_RTOS                     0U
 | 
				
			||||||
 | 
					#define  PREFETCH_ENABLE              0U
 | 
				
			||||||
 | 
					#define  INSTRUCTION_CACHE_ENABLE     1U
 | 
				
			||||||
 | 
					#define  DATA_CACHE_ENABLE            1U
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* ########################## Assert Selection ############################## */
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  * @brief Uncomment the line below to expanse the "assert_param" macro in the
 | 
				
			||||||
 | 
					  *        HAL drivers code
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					/* #define USE_FULL_ASSERT    1U */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* ################## SPI peripheral configuration ########################## */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* CRC FEATURE: Use to activate CRC feature inside HAL SPI Driver
 | 
				
			||||||
 | 
					 * Activated: CRC code is present inside driver
 | 
				
			||||||
 | 
					 * Deactivated: CRC code cleaned from driver
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define USE_SPI_CRC                   0U
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Includes ------------------------------------------------------------------*/
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  * @brief Include module's header file
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef HAL_RCC_MODULE_ENABLED
 | 
				
			||||||
 | 
					#include "stm32g4xx_hal_rcc.h"
 | 
				
			||||||
 | 
					#endif /* HAL_RCC_MODULE_ENABLED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef HAL_GPIO_MODULE_ENABLED
 | 
				
			||||||
 | 
					#include "stm32g4xx_hal_gpio.h"
 | 
				
			||||||
 | 
					#endif /* HAL_GPIO_MODULE_ENABLED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef HAL_DMA_MODULE_ENABLED
 | 
				
			||||||
 | 
					#include "stm32g4xx_hal_dma.h"
 | 
				
			||||||
 | 
					#endif /* HAL_DMA_MODULE_ENABLED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef HAL_CORTEX_MODULE_ENABLED
 | 
				
			||||||
 | 
					#include "stm32g4xx_hal_cortex.h"
 | 
				
			||||||
 | 
					#endif /* HAL_CORTEX_MODULE_ENABLED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef HAL_ADC_MODULE_ENABLED
 | 
				
			||||||
 | 
					#include "stm32g4xx_hal_adc.h"
 | 
				
			||||||
 | 
					#endif /* HAL_ADC_MODULE_ENABLED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef HAL_COMP_MODULE_ENABLED
 | 
				
			||||||
 | 
					#include "stm32g4xx_hal_comp.h"
 | 
				
			||||||
 | 
					#endif /* HAL_COMP_MODULE_ENABLED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef HAL_CORDIC_MODULE_ENABLED
 | 
				
			||||||
 | 
					#include "stm32g4xx_hal_cordic.h"
 | 
				
			||||||
 | 
					#endif /* HAL_CORDIC_MODULE_ENABLED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef HAL_CRC_MODULE_ENABLED
 | 
				
			||||||
 | 
					#include "stm32g4xx_hal_crc.h"
 | 
				
			||||||
 | 
					#endif /* HAL_CRC_MODULE_ENABLED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef HAL_CRYP_MODULE_ENABLED
 | 
				
			||||||
 | 
					#include "stm32g4xx_hal_cryp.h"
 | 
				
			||||||
 | 
					#endif /* HAL_CRYP_MODULE_ENABLED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef HAL_DAC_MODULE_ENABLED
 | 
				
			||||||
 | 
					#include "stm32g4xx_hal_dac.h"
 | 
				
			||||||
 | 
					#endif /* HAL_DAC_MODULE_ENABLED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef HAL_EXTI_MODULE_ENABLED
 | 
				
			||||||
 | 
					#include "stm32g4xx_hal_exti.h"
 | 
				
			||||||
 | 
					#endif /* HAL_EXTI_MODULE_ENABLED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef HAL_FDCAN_MODULE_ENABLED
 | 
				
			||||||
 | 
					#include "stm32g4xx_hal_fdcan.h"
 | 
				
			||||||
 | 
					#endif /* HAL_FDCAN_MODULE_ENABLED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef HAL_FLASH_MODULE_ENABLED
 | 
				
			||||||
 | 
					#include "stm32g4xx_hal_flash.h"
 | 
				
			||||||
 | 
					#endif /* HAL_FLASH_MODULE_ENABLED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef HAL_FMAC_MODULE_ENABLED
 | 
				
			||||||
 | 
					#include "stm32g4xx_hal_fmac.h"
 | 
				
			||||||
 | 
					#endif /* HAL_FMAC_MODULE_ENABLED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef HAL_HRTIM_MODULE_ENABLED
 | 
				
			||||||
 | 
					#include "stm32g4xx_hal_hrtim.h"
 | 
				
			||||||
 | 
					#endif /* HAL_HRTIM_MODULE_ENABLED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef HAL_IRDA_MODULE_ENABLED
 | 
				
			||||||
 | 
					#include "stm32g4xx_hal_irda.h"
 | 
				
			||||||
 | 
					#endif /* HAL_IRDA_MODULE_ENABLED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef HAL_IWDG_MODULE_ENABLED
 | 
				
			||||||
 | 
					#include "stm32g4xx_hal_iwdg.h"
 | 
				
			||||||
 | 
					#endif /* HAL_IWDG_MODULE_ENABLED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef HAL_I2C_MODULE_ENABLED
 | 
				
			||||||
 | 
					#include "stm32g4xx_hal_i2c.h"
 | 
				
			||||||
 | 
					#endif /* HAL_I2C_MODULE_ENABLED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef HAL_I2S_MODULE_ENABLED
 | 
				
			||||||
 | 
					#include "stm32g4xx_hal_i2s.h"
 | 
				
			||||||
 | 
					#endif /* HAL_I2S_MODULE_ENABLED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef HAL_LPTIM_MODULE_ENABLED
 | 
				
			||||||
 | 
					#include "stm32g4xx_hal_lptim.h"
 | 
				
			||||||
 | 
					#endif /* HAL_LPTIM_MODULE_ENABLED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef HAL_NAND_MODULE_ENABLED
 | 
				
			||||||
 | 
					#include "stm32g4xx_hal_nand.h"
 | 
				
			||||||
 | 
					#endif /* HAL_NAND_MODULE_ENABLED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef HAL_NOR_MODULE_ENABLED
 | 
				
			||||||
 | 
					#include "stm32g4xx_hal_nor.h"
 | 
				
			||||||
 | 
					#endif /* HAL_NOR_MODULE_ENABLED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef HAL_OPAMP_MODULE_ENABLED
 | 
				
			||||||
 | 
					#include "stm32g4xx_hal_opamp.h"
 | 
				
			||||||
 | 
					#endif /* HAL_OPAMP_MODULE_ENABLED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef HAL_PCD_MODULE_ENABLED
 | 
				
			||||||
 | 
					#include "stm32g4xx_hal_pcd.h"
 | 
				
			||||||
 | 
					#endif /* HAL_PCD_MODULE_ENABLED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef HAL_PWR_MODULE_ENABLED
 | 
				
			||||||
 | 
					#include "stm32g4xx_hal_pwr.h"
 | 
				
			||||||
 | 
					#endif /* HAL_PWR_MODULE_ENABLED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef HAL_QSPI_MODULE_ENABLED
 | 
				
			||||||
 | 
					#include "stm32g4xx_hal_qspi.h"
 | 
				
			||||||
 | 
					#endif /* HAL_QSPI_MODULE_ENABLED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef HAL_RNG_MODULE_ENABLED
 | 
				
			||||||
 | 
					#include "stm32g4xx_hal_rng.h"
 | 
				
			||||||
 | 
					#endif /* HAL_RNG_MODULE_ENABLED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef HAL_RTC_MODULE_ENABLED
 | 
				
			||||||
 | 
					#include "stm32g4xx_hal_rtc.h"
 | 
				
			||||||
 | 
					#endif /* HAL_RTC_MODULE_ENABLED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef HAL_SAI_MODULE_ENABLED
 | 
				
			||||||
 | 
					#include "stm32g4xx_hal_sai.h"
 | 
				
			||||||
 | 
					#endif /* HAL_SAI_MODULE_ENABLED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef HAL_SMARTCARD_MODULE_ENABLED
 | 
				
			||||||
 | 
					#include "stm32g4xx_hal_smartcard.h"
 | 
				
			||||||
 | 
					#endif /* HAL_SMARTCARD_MODULE_ENABLED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef HAL_SMBUS_MODULE_ENABLED
 | 
				
			||||||
 | 
					#include "stm32g4xx_hal_smbus.h"
 | 
				
			||||||
 | 
					#endif /* HAL_SMBUS_MODULE_ENABLED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef HAL_SPI_MODULE_ENABLED
 | 
				
			||||||
 | 
					#include "stm32g4xx_hal_spi.h"
 | 
				
			||||||
 | 
					#endif /* HAL_SPI_MODULE_ENABLED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef HAL_SRAM_MODULE_ENABLED
 | 
				
			||||||
 | 
					#include "stm32g4xx_hal_sram.h"
 | 
				
			||||||
 | 
					#endif /* HAL_SRAM_MODULE_ENABLED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef HAL_TIM_MODULE_ENABLED
 | 
				
			||||||
 | 
					#include "stm32g4xx_hal_tim.h"
 | 
				
			||||||
 | 
					#endif /* HAL_TIM_MODULE_ENABLED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef HAL_UART_MODULE_ENABLED
 | 
				
			||||||
 | 
					#include "stm32g4xx_hal_uart.h"
 | 
				
			||||||
 | 
					#endif /* HAL_UART_MODULE_ENABLED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef HAL_USART_MODULE_ENABLED
 | 
				
			||||||
 | 
					#include "stm32g4xx_hal_usart.h"
 | 
				
			||||||
 | 
					#endif /* HAL_USART_MODULE_ENABLED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef HAL_WWDG_MODULE_ENABLED
 | 
				
			||||||
 | 
					#include "stm32g4xx_hal_wwdg.h"
 | 
				
			||||||
 | 
					#endif /* HAL_WWDG_MODULE_ENABLED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Exported macro ------------------------------------------------------------*/
 | 
				
			||||||
 | 
					#ifdef  USE_FULL_ASSERT
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  * @brief  The assert_param macro is used for function's parameters check.
 | 
				
			||||||
 | 
					  * @param  expr: If expr is false, it calls assert_failed function
 | 
				
			||||||
 | 
					  *         which reports the name of the source file and the source
 | 
				
			||||||
 | 
					  *         line number of the call that failed.
 | 
				
			||||||
 | 
					  *         If expr is true, it returns no value.
 | 
				
			||||||
 | 
					  * @retval None
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					#define assert_param(expr) ((expr) ? (void)0U : assert_failed((uint8_t *)__FILE__, __LINE__))
 | 
				
			||||||
 | 
					/* Exported functions ------------------------------------------------------- */
 | 
				
			||||||
 | 
					void assert_failed(uint8_t *file, uint32_t line);
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define assert_param(expr) ((void)0U)
 | 
				
			||||||
 | 
					#endif /* USE_FULL_ASSERT */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* STM32G4xx_HAL_CONF_H */
 | 
				
			||||||
							
								
								
									
										66
									
								
								exp1/Core/Inc/stm32g4xx_it.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								exp1/Core/Inc/stm32g4xx_it.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,66 @@
 | 
				
			|||||||
 | 
					/* USER CODE BEGIN Header */
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  ******************************************************************************
 | 
				
			||||||
 | 
					  * @file    stm32g4xx_it.h
 | 
				
			||||||
 | 
					  * @brief   This file contains the headers of the interrupt handlers.
 | 
				
			||||||
 | 
					  ******************************************************************************
 | 
				
			||||||
 | 
					  * @attention
 | 
				
			||||||
 | 
					  *
 | 
				
			||||||
 | 
					  * Copyright (c) 2024 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 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Define to prevent recursive inclusion -------------------------------------*/
 | 
				
			||||||
 | 
					#ifndef __STM32G4xx_IT_H
 | 
				
			||||||
 | 
					#define __STM32G4xx_IT_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					 extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Private includes ----------------------------------------------------------*/
 | 
				
			||||||
 | 
					/* USER CODE BEGIN Includes */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE END Includes */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Exported types ------------------------------------------------------------*/
 | 
				
			||||||
 | 
					/* USER CODE BEGIN ET */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE END ET */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Exported constants --------------------------------------------------------*/
 | 
				
			||||||
 | 
					/* USER CODE BEGIN EC */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE END EC */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Exported macro ------------------------------------------------------------*/
 | 
				
			||||||
 | 
					/* USER CODE BEGIN EM */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE END EM */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Exported functions prototypes ---------------------------------------------*/
 | 
				
			||||||
 | 
					void NMI_Handler(void);
 | 
				
			||||||
 | 
					void HardFault_Handler(void);
 | 
				
			||||||
 | 
					void MemManage_Handler(void);
 | 
				
			||||||
 | 
					void BusFault_Handler(void);
 | 
				
			||||||
 | 
					void UsageFault_Handler(void);
 | 
				
			||||||
 | 
					void SVC_Handler(void);
 | 
				
			||||||
 | 
					void DebugMon_Handler(void);
 | 
				
			||||||
 | 
					void PendSV_Handler(void);
 | 
				
			||||||
 | 
					void SysTick_Handler(void);
 | 
				
			||||||
 | 
					/* USER CODE BEGIN EFP */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE END EFP */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* __STM32G4xx_IT_H */
 | 
				
			||||||
							
								
								
									
										66
									
								
								exp1/Core/Src/gpio.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								exp1/Core/Src/gpio.c
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,66 @@
 | 
				
			|||||||
 | 
					/* USER CODE BEGIN Header */
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  ******************************************************************************
 | 
				
			||||||
 | 
					  * @file    gpio.c
 | 
				
			||||||
 | 
					  * @brief   This file provides code for the configuration
 | 
				
			||||||
 | 
					  *          of all used GPIO pins.
 | 
				
			||||||
 | 
					  ******************************************************************************
 | 
				
			||||||
 | 
					  * @attention
 | 
				
			||||||
 | 
					  *
 | 
				
			||||||
 | 
					  * Copyright (c) 2024 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 "gpio.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE BEGIN 0 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE END 0 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*----------------------------------------------------------------------------*/
 | 
				
			||||||
 | 
					/* Configure GPIO                                                             */
 | 
				
			||||||
 | 
					/*----------------------------------------------------------------------------*/
 | 
				
			||||||
 | 
					/* USER CODE BEGIN 1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE END 1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/** Configure pins as
 | 
				
			||||||
 | 
					        * Analog
 | 
				
			||||||
 | 
					        * Input
 | 
				
			||||||
 | 
					        * Output
 | 
				
			||||||
 | 
					        * EVENT_OUT
 | 
				
			||||||
 | 
					        * EXTI
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					void MX_GPIO_Init(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  GPIO_InitTypeDef GPIO_InitStruct = {0};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* GPIO Ports Clock Enable */
 | 
				
			||||||
 | 
					  __HAL_RCC_GPIOC_CLK_ENABLE();
 | 
				
			||||||
 | 
					  __HAL_RCC_GPIOF_CLK_ENABLE();
 | 
				
			||||||
 | 
					  __HAL_RCC_GPIOA_CLK_ENABLE();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /*Configure GPIO pin Output Level */
 | 
				
			||||||
 | 
					  HAL_GPIO_WritePin(TickClock_LED_GPIO_Port, TickClock_LED_Pin, GPIO_PIN_SET);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /*Configure GPIO pin : PtPin */
 | 
				
			||||||
 | 
					  GPIO_InitStruct.Pin = TickClock_LED_Pin;
 | 
				
			||||||
 | 
					  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
 | 
				
			||||||
 | 
					  GPIO_InitStruct.Pull = GPIO_PULLUP;
 | 
				
			||||||
 | 
					  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
 | 
				
			||||||
 | 
					  HAL_GPIO_Init(TickClock_LED_GPIO_Port, &GPIO_InitStruct);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE BEGIN 2 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE END 2 */
 | 
				
			||||||
							
								
								
									
										183
									
								
								exp1/Core/Src/main.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										183
									
								
								exp1/Core/Src/main.c
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,183 @@
 | 
				
			|||||||
 | 
					/* USER CODE BEGIN Header */
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  ******************************************************************************
 | 
				
			||||||
 | 
					  * @file           : main.c
 | 
				
			||||||
 | 
					  * @brief          : Main program body
 | 
				
			||||||
 | 
					  ******************************************************************************
 | 
				
			||||||
 | 
					  * @attention
 | 
				
			||||||
 | 
					  *
 | 
				
			||||||
 | 
					  * Copyright (c) 2024 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"
 | 
				
			||||||
 | 
					#include "gpio.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 ---------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE BEGIN PV */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE END PV */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Private function prototypes -----------------------------------------------*/
 | 
				
			||||||
 | 
					void SystemClock_Config(void);
 | 
				
			||||||
 | 
					/* USER CODE BEGIN PFP */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE END PFP */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Private user code ---------------------------------------------------------*/
 | 
				
			||||||
 | 
					/* USER CODE BEGIN 0 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE END 0 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  * @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();
 | 
				
			||||||
 | 
					  /* USER CODE BEGIN 2 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* USER CODE END 2 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* Infinite loop */
 | 
				
			||||||
 | 
					  /* USER CODE BEGIN WHILE */
 | 
				
			||||||
 | 
					  while (1)
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    /* USER CODE END WHILE */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* USER CODE BEGIN 3 */
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  /* USER CODE END 3 */
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  * @brief System Clock Configuration
 | 
				
			||||||
 | 
					  * @retval None
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					void SystemClock_Config(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  RCC_OscInitTypeDef RCC_OscInitStruct = {0};
 | 
				
			||||||
 | 
					  RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /** Configure the main internal regulator output voltage
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					  HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE1_BOOST);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /** Initializes the RCC Oscillators according to the specified parameters
 | 
				
			||||||
 | 
					  * in the RCC_OscInitTypeDef structure.
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
 | 
				
			||||||
 | 
					  RCC_OscInitStruct.HSEState = RCC_HSE_ON;
 | 
				
			||||||
 | 
					  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
 | 
				
			||||||
 | 
					  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
 | 
				
			||||||
 | 
					  RCC_OscInitStruct.PLL.PLLM = RCC_PLLM_DIV6;
 | 
				
			||||||
 | 
					  RCC_OscInitStruct.PLL.PLLN = 85;
 | 
				
			||||||
 | 
					  RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
 | 
				
			||||||
 | 
					  RCC_OscInitStruct.PLL.PLLQ = RCC_PLLQ_DIV2;
 | 
				
			||||||
 | 
					  RCC_OscInitStruct.PLL.PLLR = RCC_PLLR_DIV2;
 | 
				
			||||||
 | 
					  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_PLLCLK;
 | 
				
			||||||
 | 
					  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_4) != HAL_OK)
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    Error_Handler();
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 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 */
 | 
				
			||||||
							
								
								
									
										87
									
								
								exp1/Core/Src/stm32g4xx_hal_msp.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										87
									
								
								exp1/Core/Src/stm32g4xx_hal_msp.c
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,87 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE BEGIN Header */
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  ******************************************************************************
 | 
				
			||||||
 | 
					  * @file         stm32g4xx_hal_msp.c
 | 
				
			||||||
 | 
					  * @brief        This file provides code for the MSP Initialization
 | 
				
			||||||
 | 
					  *               and de-Initialization codes.
 | 
				
			||||||
 | 
					  ******************************************************************************
 | 
				
			||||||
 | 
					  * @attention
 | 
				
			||||||
 | 
					  *
 | 
				
			||||||
 | 
					  * Copyright (c) 2024 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"
 | 
				
			||||||
 | 
					/* USER CODE BEGIN Includes */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE END Includes */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Private typedef -----------------------------------------------------------*/
 | 
				
			||||||
 | 
					/* USER CODE BEGIN TD */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE END TD */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Private define ------------------------------------------------------------*/
 | 
				
			||||||
 | 
					/* USER CODE BEGIN Define */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE END Define */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Private macro -------------------------------------------------------------*/
 | 
				
			||||||
 | 
					/* USER CODE BEGIN Macro */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE END Macro */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Private variables ---------------------------------------------------------*/
 | 
				
			||||||
 | 
					/* USER CODE BEGIN PV */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE END PV */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Private function prototypes -----------------------------------------------*/
 | 
				
			||||||
 | 
					/* USER CODE BEGIN PFP */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE END PFP */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* External functions --------------------------------------------------------*/
 | 
				
			||||||
 | 
					/* USER CODE BEGIN ExternalFunctions */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE END ExternalFunctions */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE BEGIN 0 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE END 0 */
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  * Initializes the Global MSP.
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					void HAL_MspInit(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* USER CODE BEGIN MspInit 0 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* USER CODE END MspInit 0 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  __HAL_RCC_SYSCFG_CLK_ENABLE();
 | 
				
			||||||
 | 
					  __HAL_RCC_PWR_CLK_ENABLE();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* System interrupt init*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /** Disable the internal Pull-Up in Dead Battery pins of UCPD peripheral
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					  HAL_PWREx_DisableUCPDDeadBattery();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* USER CODE BEGIN MspInit 1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* USER CODE END MspInit 1 */
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE BEGIN 1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE END 1 */
 | 
				
			||||||
							
								
								
									
										203
									
								
								exp1/Core/Src/stm32g4xx_it.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										203
									
								
								exp1/Core/Src/stm32g4xx_it.c
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,203 @@
 | 
				
			|||||||
 | 
					/* USER CODE BEGIN Header */
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  ******************************************************************************
 | 
				
			||||||
 | 
					  * @file    stm32g4xx_it.c
 | 
				
			||||||
 | 
					  * @brief   Interrupt Service Routines.
 | 
				
			||||||
 | 
					  ******************************************************************************
 | 
				
			||||||
 | 
					  * @attention
 | 
				
			||||||
 | 
					  *
 | 
				
			||||||
 | 
					  * Copyright (c) 2024 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"
 | 
				
			||||||
 | 
					#include "stm32g4xx_it.h"
 | 
				
			||||||
 | 
					/* Private includes ----------------------------------------------------------*/
 | 
				
			||||||
 | 
					/* USER CODE BEGIN Includes */
 | 
				
			||||||
 | 
					/* USER CODE END Includes */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Private typedef -----------------------------------------------------------*/
 | 
				
			||||||
 | 
					/* USER CODE BEGIN TD */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE END TD */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Private define ------------------------------------------------------------*/
 | 
				
			||||||
 | 
					/* USER CODE BEGIN PD */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE END PD */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Private macro -------------------------------------------------------------*/
 | 
				
			||||||
 | 
					/* USER CODE BEGIN PM */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE END PM */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Private variables ---------------------------------------------------------*/
 | 
				
			||||||
 | 
					/* USER CODE BEGIN PV */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE END PV */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Private function prototypes -----------------------------------------------*/
 | 
				
			||||||
 | 
					/* USER CODE BEGIN PFP */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE END PFP */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Private user code ---------------------------------------------------------*/
 | 
				
			||||||
 | 
					/* USER CODE BEGIN 0 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE END 0 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* External variables --------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE BEGIN EV */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE END EV */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/******************************************************************************/
 | 
				
			||||||
 | 
					/*           Cortex-M4 Processor Interruption and Exception Handlers          */
 | 
				
			||||||
 | 
					/******************************************************************************/
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  * @brief This function handles Non maskable interrupt.
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					void NMI_Handler(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  /* USER CODE BEGIN NonMaskableInt_IRQn 0 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* USER CODE END NonMaskableInt_IRQn 0 */
 | 
				
			||||||
 | 
					  /* USER CODE BEGIN NonMaskableInt_IRQn 1 */
 | 
				
			||||||
 | 
					   while (1)
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  /* USER CODE END NonMaskableInt_IRQn 1 */
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  * @brief This function handles Hard fault interrupt.
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					void HardFault_Handler(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  /* USER CODE BEGIN HardFault_IRQn 0 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* USER CODE END HardFault_IRQn 0 */
 | 
				
			||||||
 | 
					  while (1)
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    /* USER CODE BEGIN W1_HardFault_IRQn 0 */
 | 
				
			||||||
 | 
					    /* USER CODE END W1_HardFault_IRQn 0 */
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  * @brief This function handles Memory management fault.
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					void MemManage_Handler(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  /* USER CODE BEGIN MemoryManagement_IRQn 0 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* USER CODE END MemoryManagement_IRQn 0 */
 | 
				
			||||||
 | 
					  while (1)
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    /* USER CODE BEGIN W1_MemoryManagement_IRQn 0 */
 | 
				
			||||||
 | 
					    /* USER CODE END W1_MemoryManagement_IRQn 0 */
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  * @brief This function handles Prefetch fault, memory access fault.
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					void BusFault_Handler(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  /* USER CODE BEGIN BusFault_IRQn 0 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* USER CODE END BusFault_IRQn 0 */
 | 
				
			||||||
 | 
					  while (1)
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    /* USER CODE BEGIN W1_BusFault_IRQn 0 */
 | 
				
			||||||
 | 
					    /* USER CODE END W1_BusFault_IRQn 0 */
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  * @brief This function handles Undefined instruction or illegal state.
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					void UsageFault_Handler(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  /* USER CODE BEGIN UsageFault_IRQn 0 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* USER CODE END UsageFault_IRQn 0 */
 | 
				
			||||||
 | 
					  while (1)
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    /* USER CODE BEGIN W1_UsageFault_IRQn 0 */
 | 
				
			||||||
 | 
					    /* USER CODE END W1_UsageFault_IRQn 0 */
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  * @brief This function handles System service call via SWI instruction.
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					void SVC_Handler(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  /* USER CODE BEGIN SVCall_IRQn 0 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* USER CODE END SVCall_IRQn 0 */
 | 
				
			||||||
 | 
					  /* USER CODE BEGIN SVCall_IRQn 1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* USER CODE END SVCall_IRQn 1 */
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  * @brief This function handles Debug monitor.
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					void DebugMon_Handler(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  /* USER CODE BEGIN DebugMonitor_IRQn 0 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* USER CODE END DebugMonitor_IRQn 0 */
 | 
				
			||||||
 | 
					  /* USER CODE BEGIN DebugMonitor_IRQn 1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* USER CODE END DebugMonitor_IRQn 1 */
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  * @brief This function handles Pendable request for system service.
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					void PendSV_Handler(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  /* USER CODE BEGIN PendSV_IRQn 0 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* USER CODE END PendSV_IRQn 0 */
 | 
				
			||||||
 | 
					  /* USER CODE BEGIN PendSV_IRQn 1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* USER CODE END PendSV_IRQn 1 */
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  * @brief This function handles System tick timer.
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					void SysTick_Handler(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  /* USER CODE BEGIN SysTick_IRQn 0 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* USER CODE END SysTick_IRQn 0 */
 | 
				
			||||||
 | 
					  HAL_IncTick();
 | 
				
			||||||
 | 
					  /* USER CODE BEGIN SysTick_IRQn 1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* USER CODE END SysTick_IRQn 1 */
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/******************************************************************************/
 | 
				
			||||||
 | 
					/* STM32G4xx Peripheral Interrupt Handlers                                    */
 | 
				
			||||||
 | 
					/* Add here the Interrupt Handlers for the used peripherals.                  */
 | 
				
			||||||
 | 
					/* For the available peripheral interrupt handler names,                      */
 | 
				
			||||||
 | 
					/* please refer to the startup file (startup_stm32g4xx.s).                    */
 | 
				
			||||||
 | 
					/******************************************************************************/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE BEGIN 1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USER CODE END 1 */
 | 
				
			||||||
							
								
								
									
										285
									
								
								exp1/Core/Src/system_stm32g4xx.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										285
									
								
								exp1/Core/Src/system_stm32g4xx.c
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,285 @@
 | 
				
			|||||||
 | 
					/**
 | 
				
			||||||
 | 
					  ******************************************************************************
 | 
				
			||||||
 | 
					  * @file    system_stm32g4xx.c
 | 
				
			||||||
 | 
					  * @author  MCD Application Team
 | 
				
			||||||
 | 
					  * @brief   CMSIS Cortex-M4 Device Peripheral Access Layer System Source File
 | 
				
			||||||
 | 
					  *
 | 
				
			||||||
 | 
					  *   This file provides two functions and one global variable to be called from
 | 
				
			||||||
 | 
					  *   user application:
 | 
				
			||||||
 | 
					  *      - SystemInit(): This function is called at startup just after reset and
 | 
				
			||||||
 | 
					  *                      before branch to main program. This call is made inside
 | 
				
			||||||
 | 
					  *                      the "startup_stm32g4xx.s" file.
 | 
				
			||||||
 | 
					  *
 | 
				
			||||||
 | 
					  *      - SystemCoreClock variable: Contains the core clock (HCLK), it can be used
 | 
				
			||||||
 | 
					  *                                  by the user application to setup the SysTick
 | 
				
			||||||
 | 
					  *                                  timer or configure other parameters.
 | 
				
			||||||
 | 
					  *
 | 
				
			||||||
 | 
					  *      - SystemCoreClockUpdate(): Updates the variable SystemCoreClock and must
 | 
				
			||||||
 | 
					  *                                 be called whenever the core clock is changed
 | 
				
			||||||
 | 
					  *                                 during program execution.
 | 
				
			||||||
 | 
					  *
 | 
				
			||||||
 | 
					  *   After each device reset the HSI (16 MHz) is used as system clock source.
 | 
				
			||||||
 | 
					  *   Then SystemInit() function is called, in "startup_stm32g4xx.s" file, to
 | 
				
			||||||
 | 
					  *   configure the system clock before to branch to main program.
 | 
				
			||||||
 | 
					  *
 | 
				
			||||||
 | 
					  *   This file configures the system clock as follows:
 | 
				
			||||||
 | 
					  *=============================================================================
 | 
				
			||||||
 | 
					  *-----------------------------------------------------------------------------
 | 
				
			||||||
 | 
					  *        System Clock source                    | HSI
 | 
				
			||||||
 | 
					  *-----------------------------------------------------------------------------
 | 
				
			||||||
 | 
					  *        SYSCLK(Hz)                             | 16000000
 | 
				
			||||||
 | 
					  *-----------------------------------------------------------------------------
 | 
				
			||||||
 | 
					  *        HCLK(Hz)                               | 16000000
 | 
				
			||||||
 | 
					  *-----------------------------------------------------------------------------
 | 
				
			||||||
 | 
					  *        AHB Prescaler                          | 1
 | 
				
			||||||
 | 
					  *-----------------------------------------------------------------------------
 | 
				
			||||||
 | 
					  *        APB1 Prescaler                         | 1
 | 
				
			||||||
 | 
					  *-----------------------------------------------------------------------------
 | 
				
			||||||
 | 
					  *        APB2 Prescaler                         | 1
 | 
				
			||||||
 | 
					  *-----------------------------------------------------------------------------
 | 
				
			||||||
 | 
					  *        PLL_M                                  | 1
 | 
				
			||||||
 | 
					  *-----------------------------------------------------------------------------
 | 
				
			||||||
 | 
					  *        PLL_N                                  | 16
 | 
				
			||||||
 | 
					  *-----------------------------------------------------------------------------
 | 
				
			||||||
 | 
					  *        PLL_P                                  | 7
 | 
				
			||||||
 | 
					  *-----------------------------------------------------------------------------
 | 
				
			||||||
 | 
					  *        PLL_Q                                  | 2
 | 
				
			||||||
 | 
					  *-----------------------------------------------------------------------------
 | 
				
			||||||
 | 
					  *        PLL_R                                  | 2
 | 
				
			||||||
 | 
					  *-----------------------------------------------------------------------------
 | 
				
			||||||
 | 
					  *        Require 48MHz for RNG                  | Disabled
 | 
				
			||||||
 | 
					  *-----------------------------------------------------------------------------
 | 
				
			||||||
 | 
					  *=============================================================================
 | 
				
			||||||
 | 
					  ******************************************************************************
 | 
				
			||||||
 | 
					  * @attention
 | 
				
			||||||
 | 
					  *
 | 
				
			||||||
 | 
					  * Copyright (c) 2019 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.
 | 
				
			||||||
 | 
					  *
 | 
				
			||||||
 | 
					  ******************************************************************************
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/** @addtogroup CMSIS
 | 
				
			||||||
 | 
					  * @{
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/** @addtogroup stm32g4xx_system
 | 
				
			||||||
 | 
					  * @{
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/** @addtogroup STM32G4xx_System_Private_Includes
 | 
				
			||||||
 | 
					  * @{
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "stm32g4xx.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !defined  (HSE_VALUE)
 | 
				
			||||||
 | 
					  #define HSE_VALUE     24000000U /*!< Value of the External oscillator in Hz */
 | 
				
			||||||
 | 
					#endif /* HSE_VALUE */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !defined  (HSI_VALUE)
 | 
				
			||||||
 | 
					  #define HSI_VALUE    16000000U /*!< Value of the Internal oscillator in Hz*/
 | 
				
			||||||
 | 
					#endif /* HSI_VALUE */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  * @}
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/** @addtogroup STM32G4xx_System_Private_TypesDefinitions
 | 
				
			||||||
 | 
					  * @{
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  * @}
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/** @addtogroup STM32G4xx_System_Private_Defines
 | 
				
			||||||
 | 
					  * @{
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/************************* Miscellaneous Configuration ************************/
 | 
				
			||||||
 | 
					/* Note: Following vector table addresses must be defined in line with linker
 | 
				
			||||||
 | 
					         configuration. */
 | 
				
			||||||
 | 
					/*!< Uncomment the following line if you need to relocate the vector table
 | 
				
			||||||
 | 
					     anywhere in Flash or Sram, else the vector table is kept at the automatic
 | 
				
			||||||
 | 
					     remap of boot address selected */
 | 
				
			||||||
 | 
					/* #define USER_VECT_TAB_ADDRESS */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(USER_VECT_TAB_ADDRESS)
 | 
				
			||||||
 | 
					/*!< Uncomment the following line if you need to relocate your vector Table
 | 
				
			||||||
 | 
					     in Sram else user remap will be done in Flash. */
 | 
				
			||||||
 | 
					/* #define VECT_TAB_SRAM */
 | 
				
			||||||
 | 
					#if defined(VECT_TAB_SRAM)
 | 
				
			||||||
 | 
					#define VECT_TAB_BASE_ADDRESS   SRAM_BASE       /*!< Vector Table base address field.
 | 
				
			||||||
 | 
					                                                     This value must be a multiple of 0x200. */
 | 
				
			||||||
 | 
					#define VECT_TAB_OFFSET         0x00000000U     /*!< Vector Table base offset field.
 | 
				
			||||||
 | 
					                                                     This value must be a multiple of 0x200. */
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define VECT_TAB_BASE_ADDRESS   FLASH_BASE      /*!< Vector Table base address field.
 | 
				
			||||||
 | 
					                                                     This value must be a multiple of 0x200. */
 | 
				
			||||||
 | 
					#define VECT_TAB_OFFSET         0x00000000U     /*!< Vector Table base offset field.
 | 
				
			||||||
 | 
					                                                     This value must be a multiple of 0x200. */
 | 
				
			||||||
 | 
					#endif /* VECT_TAB_SRAM */
 | 
				
			||||||
 | 
					#endif /* USER_VECT_TAB_ADDRESS */
 | 
				
			||||||
 | 
					/******************************************************************************/
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  * @}
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/** @addtogroup STM32G4xx_System_Private_Macros
 | 
				
			||||||
 | 
					  * @{
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  * @}
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/** @addtogroup STM32G4xx_System_Private_Variables
 | 
				
			||||||
 | 
					  * @{
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					  /* The SystemCoreClock variable is updated in three ways:
 | 
				
			||||||
 | 
					      1) by calling CMSIS function SystemCoreClockUpdate()
 | 
				
			||||||
 | 
					      2) by calling HAL API function HAL_RCC_GetHCLKFreq()
 | 
				
			||||||
 | 
					      3) each time HAL_RCC_ClockConfig() is called to configure the system clock frequency
 | 
				
			||||||
 | 
					         Note: If you use this function to configure the system clock; then there
 | 
				
			||||||
 | 
					               is no need to call the 2 first functions listed above, since SystemCoreClock
 | 
				
			||||||
 | 
					               variable is updated automatically.
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					  uint32_t SystemCoreClock = HSI_VALUE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const uint8_t AHBPrescTable[16] = {0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 1U, 2U, 3U, 4U, 6U, 7U, 8U, 9U};
 | 
				
			||||||
 | 
					  const uint8_t APBPrescTable[8] =  {0U, 0U, 0U, 0U, 1U, 2U, 3U, 4U};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  * @}
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/** @addtogroup STM32G4xx_System_Private_FunctionPrototypes
 | 
				
			||||||
 | 
					  * @{
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  * @}
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/** @addtogroup STM32G4xx_System_Private_Functions
 | 
				
			||||||
 | 
					  * @{
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  * @brief  Setup the microcontroller system.
 | 
				
			||||||
 | 
					  * @param  None
 | 
				
			||||||
 | 
					  * @retval None
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void SystemInit(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  /* FPU settings ------------------------------------------------------------*/
 | 
				
			||||||
 | 
					  #if (__FPU_PRESENT == 1) && (__FPU_USED == 1)
 | 
				
			||||||
 | 
					    SCB->CPACR |= ((3UL << (10*2))|(3UL << (11*2)));  /* set CP10 and CP11 Full Access */
 | 
				
			||||||
 | 
					  #endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* Configure the Vector Table location add offset address ------------------*/
 | 
				
			||||||
 | 
					#if defined(USER_VECT_TAB_ADDRESS)
 | 
				
			||||||
 | 
					  SCB->VTOR = VECT_TAB_BASE_ADDRESS | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */
 | 
				
			||||||
 | 
					#endif /* USER_VECT_TAB_ADDRESS */
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  * @brief  Update SystemCoreClock variable according to Clock Register Values.
 | 
				
			||||||
 | 
					  *         The SystemCoreClock variable contains the core clock (HCLK), it can
 | 
				
			||||||
 | 
					  *         be used by the user application to setup the SysTick timer or configure
 | 
				
			||||||
 | 
					  *         other parameters.
 | 
				
			||||||
 | 
					  *
 | 
				
			||||||
 | 
					  * @note   Each time the core clock (HCLK) changes, this function must be called
 | 
				
			||||||
 | 
					  *         to update SystemCoreClock variable value. Otherwise, any configuration
 | 
				
			||||||
 | 
					  *         based on this variable will be incorrect.
 | 
				
			||||||
 | 
					  *
 | 
				
			||||||
 | 
					  * @note   - The system frequency computed by this function is not the real
 | 
				
			||||||
 | 
					  *           frequency in the chip. It is calculated based on the predefined
 | 
				
			||||||
 | 
					  *           constant and the selected clock source:
 | 
				
			||||||
 | 
					  *
 | 
				
			||||||
 | 
					  *           - If SYSCLK source is HSI, SystemCoreClock will contain the HSI_VALUE(**)
 | 
				
			||||||
 | 
					  *
 | 
				
			||||||
 | 
					  *           - If SYSCLK source is HSE, SystemCoreClock will contain the HSE_VALUE(***)
 | 
				
			||||||
 | 
					  *
 | 
				
			||||||
 | 
					  *           - If SYSCLK source is PLL, SystemCoreClock will contain the HSE_VALUE(***)
 | 
				
			||||||
 | 
					  *             or HSI_VALUE(*) multiplied/divided by the PLL factors.
 | 
				
			||||||
 | 
					  *
 | 
				
			||||||
 | 
					  *         (**) HSI_VALUE is a constant defined in stm32g4xx_hal.h file (default value
 | 
				
			||||||
 | 
					  *              16 MHz) but the real value may vary depending on the variations
 | 
				
			||||||
 | 
					  *              in voltage and temperature.
 | 
				
			||||||
 | 
					  *
 | 
				
			||||||
 | 
					  *         (***) HSE_VALUE is a constant defined in stm32g4xx_hal.h file (default value
 | 
				
			||||||
 | 
					  *              24 MHz), user has to ensure that HSE_VALUE is same as the real
 | 
				
			||||||
 | 
					  *              frequency of the crystal used. Otherwise, this function may
 | 
				
			||||||
 | 
					  *              have wrong result.
 | 
				
			||||||
 | 
					  *
 | 
				
			||||||
 | 
					  *         - The result of this function could be not correct when using fractional
 | 
				
			||||||
 | 
					  *           value for HSE crystal.
 | 
				
			||||||
 | 
					  *
 | 
				
			||||||
 | 
					  * @param  None
 | 
				
			||||||
 | 
					  * @retval None
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					void SystemCoreClockUpdate(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  uint32_t tmp, pllvco, pllr, pllsource, pllm;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* Get SYSCLK source -------------------------------------------------------*/
 | 
				
			||||||
 | 
					  switch (RCC->CFGR & RCC_CFGR_SWS)
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    case 0x04:  /* HSI used as system clock source */
 | 
				
			||||||
 | 
					      SystemCoreClock = HSI_VALUE;
 | 
				
			||||||
 | 
					      break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case 0x08:  /* HSE used as system clock source */
 | 
				
			||||||
 | 
					      SystemCoreClock = HSE_VALUE;
 | 
				
			||||||
 | 
					      break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case 0x0C:  /* PLL used as system clock  source */
 | 
				
			||||||
 | 
					      /* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLLM) * PLLN
 | 
				
			||||||
 | 
					         SYSCLK = PLL_VCO / PLLR
 | 
				
			||||||
 | 
					         */
 | 
				
			||||||
 | 
					      pllsource = (RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC);
 | 
				
			||||||
 | 
					      pllm = ((RCC->PLLCFGR & RCC_PLLCFGR_PLLM) >> 4) + 1U ;
 | 
				
			||||||
 | 
					      if (pllsource == 0x02UL) /* HSI used as PLL clock source */
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        pllvco = (HSI_VALUE / pllm);
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      else                   /* HSE used as PLL clock source */
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        pllvco = (HSE_VALUE / pllm);
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      pllvco = pllvco * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 8);
 | 
				
			||||||
 | 
					      pllr = (((RCC->PLLCFGR & RCC_PLLCFGR_PLLR) >> 25) + 1U) * 2U;
 | 
				
			||||||
 | 
					      SystemCoreClock = pllvco/pllr;
 | 
				
			||||||
 | 
					      break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    default:
 | 
				
			||||||
 | 
					      break;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  /* Compute HCLK clock frequency --------------------------------------------*/
 | 
				
			||||||
 | 
					  /* Get HCLK prescaler */
 | 
				
			||||||
 | 
					  tmp = AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> 4)];
 | 
				
			||||||
 | 
					  /* HCLK clock frequency */
 | 
				
			||||||
 | 
					  SystemCoreClock >>= tmp;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  * @}
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  * @}
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  * @}
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user