enable hardware watchdog
This commit is contained in:
		
							
								
								
									
										58
									
								
								Core-20201227-01/Inc/adc.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								Core-20201227-01/Inc/adc.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,58 @@ | ||||
| /** | ||||
|   ****************************************************************************** | ||||
|   * File Name          : ADC.h | ||||
|   * Description        : This file provides code for the configuration | ||||
|   *                      of the ADC instances. | ||||
|   ****************************************************************************** | ||||
|   * @attention | ||||
|   * | ||||
|   * <h2><center>© Copyright (c) 2020 STMicroelectronics. | ||||
|   * All rights reserved.</center></h2> | ||||
|   * | ||||
|   * This software component is licensed by ST under BSD 3-Clause license, | ||||
|   * the "License"; You may not use this file except in compliance with the | ||||
|   * License. You may obtain a copy of the License at: | ||||
|   *                        opensource.org/licenses/BSD-3-Clause | ||||
|   * | ||||
|   ****************************************************************************** | ||||
|   */ | ||||
| /* Define to prevent recursive inclusion -------------------------------------*/ | ||||
| #ifndef __adc_H | ||||
| #define __adc_H | ||||
| #ifdef __cplusplus | ||||
|  extern "C" { | ||||
| #endif | ||||
|  | ||||
| /* Includes ------------------------------------------------------------------*/ | ||||
| #include "main.h" | ||||
|  | ||||
| /* USER CODE BEGIN Includes */ | ||||
|  | ||||
| /* USER CODE END Includes */ | ||||
|  | ||||
| extern ADC_HandleTypeDef hadc1; | ||||
|  | ||||
| /* USER CODE BEGIN Private defines */ | ||||
|  | ||||
| /* USER CODE END Private defines */ | ||||
|  | ||||
| void MX_ADC1_Init(void); | ||||
|  | ||||
| /* USER CODE BEGIN Prototypes */ | ||||
|  | ||||
| /* USER CODE END Prototypes */ | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| } | ||||
| #endif | ||||
| #endif /*__ adc_H */ | ||||
|  | ||||
| /** | ||||
|   * @} | ||||
|   */ | ||||
|  | ||||
| /** | ||||
|   * @} | ||||
|   */ | ||||
|  | ||||
| /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ | ||||
							
								
								
									
										57
									
								
								Core-20201227-01/Inc/gpio.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								Core-20201227-01/Inc/gpio.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,57 @@ | ||||
| /** | ||||
|   ****************************************************************************** | ||||
|   * File Name          : gpio.h | ||||
|   * Description        : This file contains all the functions prototypes for | ||||
|   *                      the gpio | ||||
|   ****************************************************************************** | ||||
|   * @attention | ||||
|   * | ||||
|   * <h2><center>© Copyright (c) 2020 STMicroelectronics. | ||||
|   * All rights reserved.</center></h2> | ||||
|   * | ||||
|   * This software component is licensed by ST under BSD 3-Clause license, | ||||
|   * the "License"; You may not use this file except in compliance with the | ||||
|   * License. You may obtain a copy of the License at: | ||||
|   *                        opensource.org/licenses/BSD-3-Clause | ||||
|   * | ||||
|   ****************************************************************************** | ||||
|   */ | ||||
|  | ||||
| /* 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 /*__ pinoutConfig_H */ | ||||
|  | ||||
| /** | ||||
|   * @} | ||||
|   */ | ||||
|  | ||||
| /** | ||||
|   * @} | ||||
|   */ | ||||
|  | ||||
| /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ | ||||
							
								
								
									
										137
									
								
								Core-20201227-01/Inc/main.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										137
									
								
								Core-20201227-01/Inc/main.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,137 @@ | ||||
| /* USER CODE BEGIN Header */ | ||||
| /** | ||||
|   ****************************************************************************** | ||||
|   * @file           : main.h | ||||
|   * @brief          : Header for main.c file. | ||||
|   *                   This file contains the common defines of the application. | ||||
|   ****************************************************************************** | ||||
|   * @attention | ||||
|   * | ||||
|   * <h2><center>© Copyright (c) 2020 STMicroelectronics. | ||||
|   * All rights reserved.</center></h2> | ||||
|   * | ||||
|   * This software component is licensed by ST under BSD 3-Clause license, | ||||
|   * the "License"; You may not use this file except in compliance with the | ||||
|   * License. You may obtain a copy of the License at: | ||||
|   *                        opensource.org/licenses/BSD-3-Clause | ||||
|   * | ||||
|   ****************************************************************************** | ||||
|   */ | ||||
| /* USER CODE END Header */ | ||||
|  | ||||
| /* Define to prevent recursive inclusion -------------------------------------*/ | ||||
| #ifndef __MAIN_H | ||||
| #define __MAIN_H | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| extern "C" { | ||||
| #endif | ||||
|  | ||||
| /* Includes ------------------------------------------------------------------*/ | ||||
| #include "stm32f1xx_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 debugUart huart4 | ||||
| #define mbusUart huart5 | ||||
| #define frontendAdc hadc1 | ||||
| #define eepromSpi hspi2 | ||||
| #define etherSpi hspi1 | ||||
| #define displaySpi hspi3 | ||||
| #define debugUartIRQn UART4_IRQn | ||||
| #define Loop_Enable_Pin GPIO_PIN_2 | ||||
| #define Loop_Enable_GPIO_Port GPIOE | ||||
| #define Loop_Disable_Pin GPIO_PIN_3 | ||||
| #define Loop_Disable_GPIO_Port GPIOE | ||||
| #define Loop_Status_Pin GPIO_PIN_4 | ||||
| #define Loop_Status_GPIO_Port GPIOE | ||||
| #define Loop_Status_EXTI_IRQn EXTI4_IRQn | ||||
| #define LED_Green_Pin GPIO_PIN_5 | ||||
| #define LED_Green_GPIO_Port GPIOE | ||||
| #define LED_Red_Pin GPIO_PIN_6 | ||||
| #define LED_Red_GPIO_Port GPIOE | ||||
| #define Frontend_In_Pin GPIO_PIN_1 | ||||
| #define Frontend_In_GPIO_Port GPIOA | ||||
| #define ETHER_RES_Pin GPIO_PIN_2 | ||||
| #define ETHER_RES_GPIO_Port GPIOA | ||||
| #define ETHER_INT_Pin GPIO_PIN_3 | ||||
| #define ETHER_INT_GPIO_Port GPIOA | ||||
| #define ETHER_CS_Pin GPIO_PIN_4 | ||||
| #define ETHER_CS_GPIO_Port GPIOA | ||||
| #define ETHER_SCLK_Pin GPIO_PIN_5 | ||||
| #define ETHER_SCLK_GPIO_Port GPIOA | ||||
| #define ETHER_MISO_Pin GPIO_PIN_6 | ||||
| #define ETHER_MISO_GPIO_Port GPIOA | ||||
| #define ETHER_MOSI_Pin GPIO_PIN_7 | ||||
| #define ETHER_MOSI_GPIO_Port GPIOA | ||||
| #define Debug_Signal_2_Pin GPIO_PIN_12 | ||||
| #define Debug_Signal_2_GPIO_Port GPIOE | ||||
| #define Debug_Signal_1_Pin GPIO_PIN_10 | ||||
| #define Debug_Signal_1_GPIO_Port GPIOB | ||||
| #define EEPROM_CS_Pin GPIO_PIN_12 | ||||
| #define EEPROM_CS_GPIO_Port GPIOB | ||||
| #define EEPROM_SCLK_Pin GPIO_PIN_13 | ||||
| #define EEPROM_SCLK_GPIO_Port GPIOB | ||||
| #define EEPROM_MISO_Pin GPIO_PIN_14 | ||||
| #define EEPROM_MISO_GPIO_Port GPIOB | ||||
| #define EEPROM_MOSI_Pin GPIO_PIN_15 | ||||
| #define EEPROM_MOSI_GPIO_Port GPIOB | ||||
| #define Debug_TX_Pin GPIO_PIN_10 | ||||
| #define Debug_TX_GPIO_Port GPIOC | ||||
| #define Debug_RX_Pin GPIO_PIN_11 | ||||
| #define Debug_RX_GPIO_Port GPIOC | ||||
| #define MBus_TX_Pin GPIO_PIN_12 | ||||
| #define MBus_TX_GPIO_Port GPIOC | ||||
| #define Frontend_Out_Pin GPIO_PIN_1 | ||||
| #define Frontend_Out_GPIO_Port GPIOD | ||||
| #define MBus_RX_Pin GPIO_PIN_2 | ||||
| #define MBus_RX_GPIO_Port GPIOD | ||||
| #define Display_CS_Pin GPIO_PIN_7 | ||||
| #define Display_CS_GPIO_Port GPIOD | ||||
| #define Display_SCLK_Pin GPIO_PIN_3 | ||||
| #define Display_SCLK_GPIO_Port GPIOB | ||||
| #define Display_MISO_Pin GPIO_PIN_4 | ||||
| #define Display_MISO_GPIO_Port GPIOB | ||||
| #define Display_MOSI_Pin GPIO_PIN_5 | ||||
| #define Display_MOSI_GPIO_Port GPIOB | ||||
| #define Display_DC_Pin GPIO_PIN_6 | ||||
| #define Display_DC_GPIO_Port GPIOB | ||||
| #define Display_RES_Pin GPIO_PIN_7 | ||||
| #define Display_RES_GPIO_Port GPIOB | ||||
| /* USER CODE BEGIN Private defines */ | ||||
|  | ||||
| /* USER CODE END Private defines */ | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| } | ||||
| #endif | ||||
|  | ||||
| #endif /* __MAIN_H */ | ||||
|  | ||||
| /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ | ||||
							
								
								
									
										62
									
								
								Core-20201227-01/Inc/spi.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								Core-20201227-01/Inc/spi.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,62 @@ | ||||
| /** | ||||
|   ****************************************************************************** | ||||
|   * File Name          : SPI.h | ||||
|   * Description        : This file provides code for the configuration | ||||
|   *                      of the SPI instances. | ||||
|   ****************************************************************************** | ||||
|   * @attention | ||||
|   * | ||||
|   * <h2><center>© Copyright (c) 2020 STMicroelectronics. | ||||
|   * All rights reserved.</center></h2> | ||||
|   * | ||||
|   * This software component is licensed by ST under BSD 3-Clause license, | ||||
|   * the "License"; You may not use this file except in compliance with the | ||||
|   * License. You may obtain a copy of the License at: | ||||
|   *                        opensource.org/licenses/BSD-3-Clause | ||||
|   * | ||||
|   ****************************************************************************** | ||||
|   */ | ||||
| /* Define to prevent recursive inclusion -------------------------------------*/ | ||||
| #ifndef __spi_H | ||||
| #define __spi_H | ||||
| #ifdef __cplusplus | ||||
|  extern "C" { | ||||
| #endif | ||||
|  | ||||
| /* Includes ------------------------------------------------------------------*/ | ||||
| #include "main.h" | ||||
|  | ||||
| /* USER CODE BEGIN Includes */ | ||||
|  | ||||
| /* USER CODE END Includes */ | ||||
|  | ||||
| extern SPI_HandleTypeDef hspi1; | ||||
| extern SPI_HandleTypeDef hspi2; | ||||
| extern SPI_HandleTypeDef hspi3; | ||||
|  | ||||
| /* USER CODE BEGIN Private defines */ | ||||
|  | ||||
| /* USER CODE END Private defines */ | ||||
|  | ||||
| void MX_SPI1_Init(void); | ||||
| void MX_SPI2_Init(void); | ||||
| void MX_SPI3_Init(void); | ||||
|  | ||||
| /* USER CODE BEGIN Prototypes */ | ||||
|  | ||||
| /* USER CODE END Prototypes */ | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| } | ||||
| #endif | ||||
| #endif /*__ spi_H */ | ||||
|  | ||||
| /** | ||||
|   * @} | ||||
|   */ | ||||
|  | ||||
| /** | ||||
|   * @} | ||||
|   */ | ||||
|  | ||||
| /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ | ||||
							
								
								
									
										391
									
								
								Core-20201227-01/Inc/stm32f1xx_hal_conf.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										391
									
								
								Core-20201227-01/Inc/stm32f1xx_hal_conf.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,391 @@ | ||||
| /** | ||||
|   ****************************************************************************** | ||||
|   * @file    stm32f1xx_hal_conf.h | ||||
|   * @brief   HAL configuration file. | ||||
|   ****************************************************************************** | ||||
|   * @attention | ||||
|   * | ||||
|   * <h2><center>© Copyright (c) 2017 STMicroelectronics. | ||||
|   * All rights reserved.</center></h2> | ||||
|   * | ||||
|   * This software component is licensed by ST under BSD 3-Clause license, | ||||
|   * the "License"; You may not use this file except in compliance with the | ||||
|   * License. You may obtain a copy of the License at: | ||||
|   *                        opensource.org/licenses/BSD-3-Clause | ||||
|   * | ||||
|   ****************************************************************************** | ||||
|   */ | ||||
|  | ||||
| /* Define to prevent recursive inclusion -------------------------------------*/ | ||||
| #ifndef __STM32F1xx_HAL_CONF_H | ||||
| #define __STM32F1xx_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_CRYP_MODULE_ENABLED   */ | ||||
| /*#define HAL_CAN_MODULE_ENABLED   */ | ||||
| /*#define HAL_CAN_LEGACY_MODULE_ENABLED   */ | ||||
| /*#define HAL_CEC_MODULE_ENABLED   */ | ||||
| /*#define HAL_CORTEX_MODULE_ENABLED   */ | ||||
| /*#define HAL_CRC_MODULE_ENABLED   */ | ||||
| /*#define HAL_DAC_MODULE_ENABLED   */ | ||||
| /*#define HAL_DMA_MODULE_ENABLED   */ | ||||
| /*#define HAL_ETH_MODULE_ENABLED   */ | ||||
| /*#define HAL_FLASH_MODULE_ENABLED   */ | ||||
| #define HAL_GPIO_MODULE_ENABLED | ||||
| /*#define HAL_I2C_MODULE_ENABLED   */ | ||||
| /*#define HAL_I2S_MODULE_ENABLED   */ | ||||
| /*#define HAL_IRDA_MODULE_ENABLED   */ | ||||
| /*#define HAL_IWDG_MODULE_ENABLED   */ | ||||
| /*#define HAL_NOR_MODULE_ENABLED   */ | ||||
| /*#define HAL_NAND_MODULE_ENABLED   */ | ||||
| /*#define HAL_PCCARD_MODULE_ENABLED   */ | ||||
| /*#define HAL_PCD_MODULE_ENABLED   */ | ||||
| /*#define HAL_HCD_MODULE_ENABLED   */ | ||||
| /*#define HAL_PWR_MODULE_ENABLED   */ | ||||
| /*#define HAL_RCC_MODULE_ENABLED   */ | ||||
| /*#define HAL_RTC_MODULE_ENABLED   */ | ||||
| /*#define HAL_SD_MODULE_ENABLED   */ | ||||
| /*#define HAL_MMC_MODULE_ENABLED   */ | ||||
| /*#define HAL_SDRAM_MODULE_ENABLED   */ | ||||
| /*#define HAL_SMARTCARD_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_CORTEX_MODULE_ENABLED | ||||
| #define HAL_DMA_MODULE_ENABLED | ||||
| #define HAL_FLASH_MODULE_ENABLED | ||||
| #define HAL_EXTI_MODULE_ENABLED | ||||
| #define HAL_GPIO_MODULE_ENABLED | ||||
| #define HAL_PWR_MODULE_ENABLED | ||||
| #define HAL_RCC_MODULE_ENABLED | ||||
|  | ||||
| /* ########################## 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    8000000U /*!< Value of the External oscillator in Hz */ | ||||
| #endif /* HSE_VALUE */ | ||||
|  | ||||
| #if !defined  (HSE_STARTUP_TIMEOUT) | ||||
|   #define HSE_STARTUP_TIMEOUT    100U   /*!< 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    8000000U /*!< Value of the Internal oscillator in Hz*/ | ||||
| #endif /* HSI_VALUE */ | ||||
|  | ||||
| /** | ||||
|   * @brief Internal Low Speed oscillator (LSI) value. | ||||
|   */ | ||||
| #if !defined  (LSI_VALUE) | ||||
|  #define LSI_VALUE               40000U    /*!< LSI Typical Value in Hz */ | ||||
| #endif /* LSI_VALUE */                     /*!< Value of the Internal Low Speed oscillator in Hz | ||||
|                                                 The real value may vary depending on the variations | ||||
|                                                 in voltage and temperature. */ | ||||
|  | ||||
| /** | ||||
|   * @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    32768U /*!< Value of the External oscillator in Hz*/ | ||||
| #endif /* LSE_VALUE */ | ||||
|  | ||||
| #if !defined  (LSE_STARTUP_TIMEOUT) | ||||
|   #define LSE_STARTUP_TIMEOUT    5000U   /*!< Time out for LSE start up, in ms */ | ||||
| #endif /* LSE_STARTUP_TIMEOUT */ | ||||
|  | ||||
| /* 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                    3300U /*!< Value of VDD in mv */ | ||||
| #define  TICK_INT_PRIORITY            0U    /*!< tick interrupt priority (lowest by default)  */ | ||||
| #define  USE_RTOS                     0U | ||||
| #define  PREFETCH_ENABLE              1U | ||||
|  | ||||
| #define  USE_HAL_ADC_REGISTER_CALLBACKS         0U /* ADC register callback disabled       */ | ||||
| #define  USE_HAL_CAN_REGISTER_CALLBACKS         0U /* CAN register callback disabled       */ | ||||
| #define  USE_HAL_CEC_REGISTER_CALLBACKS         0U /* CEC register callback disabled       */ | ||||
| #define  USE_HAL_DAC_REGISTER_CALLBACKS         0U /* DAC register callback disabled       */ | ||||
| #define  USE_HAL_ETH_REGISTER_CALLBACKS         0U /* ETH register callback disabled       */ | ||||
| #define  USE_HAL_HCD_REGISTER_CALLBACKS         0U /* HCD register callback disabled       */ | ||||
| #define  USE_HAL_I2C_REGISTER_CALLBACKS         0U /* I2C register callback disabled       */ | ||||
| #define  USE_HAL_I2S_REGISTER_CALLBACKS         0U /* I2S register callback disabled       */ | ||||
| #define  USE_HAL_MMC_REGISTER_CALLBACKS         0U /* MMC register callback disabled       */ | ||||
| #define  USE_HAL_NAND_REGISTER_CALLBACKS        0U /* NAND register callback disabled      */ | ||||
| #define  USE_HAL_NOR_REGISTER_CALLBACKS         0U /* NOR register callback disabled       */ | ||||
| #define  USE_HAL_PCCARD_REGISTER_CALLBACKS      0U /* PCCARD register callback disabled    */ | ||||
| #define  USE_HAL_PCD_REGISTER_CALLBACKS         0U /* PCD register callback disabled       */ | ||||
| #define  USE_HAL_RTC_REGISTER_CALLBACKS         0U /* RTC register callback disabled       */ | ||||
| #define  USE_HAL_SD_REGISTER_CALLBACKS          0U /* SD register callback disabled        */ | ||||
| #define  USE_HAL_SMARTCARD_REGISTER_CALLBACKS   0U /* SMARTCARD register callback disabled */ | ||||
| #define  USE_HAL_IRDA_REGISTER_CALLBACKS        0U /* IRDA register callback disabled      */ | ||||
| #define  USE_HAL_SRAM_REGISTER_CALLBACKS        0U /* SRAM register callback disabled      */ | ||||
| #define  USE_HAL_SPI_REGISTER_CALLBACKS         0U /* SPI register callback disabled       */ | ||||
| #define  USE_HAL_TIM_REGISTER_CALLBACKS         0U /* TIM register callback disabled       */ | ||||
| #define  USE_HAL_UART_REGISTER_CALLBACKS        0U /* UART register callback disabled      */ | ||||
| #define  USE_HAL_USART_REGISTER_CALLBACKS       0U /* USART register callback disabled     */ | ||||
| #define  USE_HAL_WWDG_REGISTER_CALLBACKS        0U /* WWDG register callback disabled      */ | ||||
|  | ||||
| /* ########################## Assert Selection ############################## */ | ||||
| /** | ||||
|   * @brief Uncomment the line below to expanse the "assert_param" macro in the | ||||
|   *        HAL drivers code | ||||
|   */ | ||||
| /* #define USE_FULL_ASSERT    1U */ | ||||
|  | ||||
| /* ################## Ethernet peripheral configuration ##################### */ | ||||
|  | ||||
| /* Section 1 : Ethernet peripheral configuration */ | ||||
|  | ||||
| /* MAC ADDRESS: MAC_ADDR0:MAC_ADDR1:MAC_ADDR2:MAC_ADDR3:MAC_ADDR4:MAC_ADDR5 */ | ||||
| #define MAC_ADDR0   2U | ||||
| #define MAC_ADDR1   0U | ||||
| #define MAC_ADDR2   0U | ||||
| #define MAC_ADDR3   0U | ||||
| #define MAC_ADDR4   0U | ||||
| #define MAC_ADDR5   0U | ||||
|  | ||||
| /* Definition of the Ethernet driver buffers size and count */ | ||||
| #define ETH_RX_BUF_SIZE                ETH_MAX_PACKET_SIZE /* buffer size for receive               */ | ||||
| #define ETH_TX_BUF_SIZE                ETH_MAX_PACKET_SIZE /* buffer size for transmit              */ | ||||
| #define ETH_RXBUFNB                    8U       /* 4 Rx buffers of size ETH_RX_BUF_SIZE  */ | ||||
| #define ETH_TXBUFNB                    4U       /* 4 Tx buffers of size ETH_TX_BUF_SIZE  */ | ||||
|  | ||||
| /* Section 2: PHY configuration section */ | ||||
|  | ||||
| /* DP83848_PHY_ADDRESS Address*/ | ||||
| #define DP83848_PHY_ADDRESS           0x01U | ||||
| /* PHY Reset delay these values are based on a 1 ms Systick interrupt*/ | ||||
| #define PHY_RESET_DELAY                 0x000000FFU | ||||
| /* PHY Configuration delay */ | ||||
| #define PHY_CONFIG_DELAY                0x00000FFFU | ||||
|  | ||||
| #define PHY_READ_TO                     0x0000FFFFU | ||||
| #define PHY_WRITE_TO                    0x0000FFFFU | ||||
|  | ||||
| /* Section 3: Common PHY Registers */ | ||||
|  | ||||
| #define PHY_BCR                         ((uint16_t)0x00)    /*!< Transceiver Basic Control Register   */ | ||||
| #define PHY_BSR                         ((uint16_t)0x01)    /*!< Transceiver Basic Status Register    */ | ||||
|  | ||||
| #define PHY_RESET                       ((uint16_t)0x8000)  /*!< PHY Reset */ | ||||
| #define PHY_LOOPBACK                    ((uint16_t)0x4000)  /*!< Select loop-back mode */ | ||||
| #define PHY_FULLDUPLEX_100M             ((uint16_t)0x2100)  /*!< Set the full-duplex mode at 100 Mb/s */ | ||||
| #define PHY_HALFDUPLEX_100M             ((uint16_t)0x2000)  /*!< Set the half-duplex mode at 100 Mb/s */ | ||||
| #define PHY_FULLDUPLEX_10M              ((uint16_t)0x0100)  /*!< Set the full-duplex mode at 10 Mb/s  */ | ||||
| #define PHY_HALFDUPLEX_10M              ((uint16_t)0x0000)  /*!< Set the half-duplex mode at 10 Mb/s  */ | ||||
| #define PHY_AUTONEGOTIATION             ((uint16_t)0x1000)  /*!< Enable auto-negotiation function     */ | ||||
| #define PHY_RESTART_AUTONEGOTIATION     ((uint16_t)0x0200)  /*!< Restart auto-negotiation function    */ | ||||
| #define PHY_POWERDOWN                   ((uint16_t)0x0800)  /*!< Select the power down mode           */ | ||||
| #define PHY_ISOLATE                     ((uint16_t)0x0400)  /*!< Isolate PHY from MII                 */ | ||||
|  | ||||
| #define PHY_AUTONEGO_COMPLETE           ((uint16_t)0x0020)  /*!< Auto-Negotiation process completed   */ | ||||
| #define PHY_LINKED_STATUS               ((uint16_t)0x0004)  /*!< Valid link established               */ | ||||
| #define PHY_JABBER_DETECTION            ((uint16_t)0x0002)  /*!< Jabber condition detected            */ | ||||
|  | ||||
| /* Section 4: Extended PHY Registers */ | ||||
| #define PHY_SR                          ((uint16_t)0x10U)    /*!< PHY status register Offset                      */ | ||||
|  | ||||
| #define PHY_SPEED_STATUS                ((uint16_t)0x0002U)  /*!< PHY Speed mask                                  */ | ||||
| #define PHY_DUPLEX_STATUS               ((uint16_t)0x0004U)  /*!< PHY Duplex mask                                 */ | ||||
|  | ||||
| /* ################## 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 "stm32f1xx_hal_rcc.h" | ||||
| #endif /* HAL_RCC_MODULE_ENABLED */ | ||||
|  | ||||
| #ifdef HAL_GPIO_MODULE_ENABLED | ||||
| #include "stm32f1xx_hal_gpio.h" | ||||
| #endif /* HAL_GPIO_MODULE_ENABLED */ | ||||
|  | ||||
| #ifdef HAL_EXTI_MODULE_ENABLED | ||||
| #include "stm32f1xx_hal_exti.h" | ||||
| #endif /* HAL_EXTI_MODULE_ENABLED */ | ||||
|  | ||||
| #ifdef HAL_DMA_MODULE_ENABLED | ||||
| #include "stm32f1xx_hal_dma.h" | ||||
| #endif /* HAL_DMA_MODULE_ENABLED */ | ||||
|  | ||||
| #ifdef HAL_ETH_MODULE_ENABLED | ||||
| #include "stm32f1xx_hal_eth.h" | ||||
| #endif /* HAL_ETH_MODULE_ENABLED */ | ||||
|  | ||||
| #ifdef HAL_CAN_MODULE_ENABLED | ||||
| #include "stm32f1xx_hal_can.h" | ||||
| #endif /* HAL_CAN_MODULE_ENABLED */ | ||||
|  | ||||
| #ifdef HAL_CAN_LEGACY_MODULE_ENABLED | ||||
|   #include "Legacy/stm32f1xx_hal_can_legacy.h" | ||||
| #endif /* HAL_CAN_LEGACY_MODULE_ENABLED */ | ||||
|  | ||||
| #ifdef HAL_CEC_MODULE_ENABLED | ||||
| #include "stm32f1xx_hal_cec.h" | ||||
| #endif /* HAL_CEC_MODULE_ENABLED */ | ||||
|  | ||||
| #ifdef HAL_CORTEX_MODULE_ENABLED | ||||
| #include "stm32f1xx_hal_cortex.h" | ||||
| #endif /* HAL_CORTEX_MODULE_ENABLED */ | ||||
|  | ||||
| #ifdef HAL_ADC_MODULE_ENABLED | ||||
| #include "stm32f1xx_hal_adc.h" | ||||
| #endif /* HAL_ADC_MODULE_ENABLED */ | ||||
|  | ||||
| #ifdef HAL_CRC_MODULE_ENABLED | ||||
| #include "stm32f1xx_hal_crc.h" | ||||
| #endif /* HAL_CRC_MODULE_ENABLED */ | ||||
|  | ||||
| #ifdef HAL_DAC_MODULE_ENABLED | ||||
| #include "stm32f1xx_hal_dac.h" | ||||
| #endif /* HAL_DAC_MODULE_ENABLED */ | ||||
|  | ||||
| #ifdef HAL_FLASH_MODULE_ENABLED | ||||
| #include "stm32f1xx_hal_flash.h" | ||||
| #endif /* HAL_FLASH_MODULE_ENABLED */ | ||||
|  | ||||
| #ifdef HAL_SRAM_MODULE_ENABLED | ||||
| #include "stm32f1xx_hal_sram.h" | ||||
| #endif /* HAL_SRAM_MODULE_ENABLED */ | ||||
|  | ||||
| #ifdef HAL_NOR_MODULE_ENABLED | ||||
| #include "stm32f1xx_hal_nor.h" | ||||
| #endif /* HAL_NOR_MODULE_ENABLED */ | ||||
|  | ||||
| #ifdef HAL_I2C_MODULE_ENABLED | ||||
| #include "stm32f1xx_hal_i2c.h" | ||||
| #endif /* HAL_I2C_MODULE_ENABLED */ | ||||
|  | ||||
| #ifdef HAL_I2S_MODULE_ENABLED | ||||
| #include "stm32f1xx_hal_i2s.h" | ||||
| #endif /* HAL_I2S_MODULE_ENABLED */ | ||||
|  | ||||
| #ifdef HAL_IWDG_MODULE_ENABLED | ||||
| #include "stm32f1xx_hal_iwdg.h" | ||||
| #endif /* HAL_IWDG_MODULE_ENABLED */ | ||||
|  | ||||
| #ifdef HAL_PWR_MODULE_ENABLED | ||||
| #include "stm32f1xx_hal_pwr.h" | ||||
| #endif /* HAL_PWR_MODULE_ENABLED */ | ||||
|  | ||||
| #ifdef HAL_RTC_MODULE_ENABLED | ||||
| #include "stm32f1xx_hal_rtc.h" | ||||
| #endif /* HAL_RTC_MODULE_ENABLED */ | ||||
|  | ||||
| #ifdef HAL_PCCARD_MODULE_ENABLED | ||||
| #include "stm32f1xx_hal_pccard.h" | ||||
| #endif /* HAL_PCCARD_MODULE_ENABLED */ | ||||
|  | ||||
| #ifdef HAL_SD_MODULE_ENABLED | ||||
| #include "stm32f1xx_hal_sd.h" | ||||
| #endif /* HAL_SD_MODULE_ENABLED */ | ||||
|  | ||||
| #ifdef HAL_NAND_MODULE_ENABLED | ||||
| #include "stm32f1xx_hal_nand.h" | ||||
| #endif /* HAL_NAND_MODULE_ENABLED */ | ||||
|  | ||||
| #ifdef HAL_SPI_MODULE_ENABLED | ||||
| #include "stm32f1xx_hal_spi.h" | ||||
| #endif /* HAL_SPI_MODULE_ENABLED */ | ||||
|  | ||||
| #ifdef HAL_TIM_MODULE_ENABLED | ||||
| #include "stm32f1xx_hal_tim.h" | ||||
| #endif /* HAL_TIM_MODULE_ENABLED */ | ||||
|  | ||||
| #ifdef HAL_UART_MODULE_ENABLED | ||||
| #include "stm32f1xx_hal_uart.h" | ||||
| #endif /* HAL_UART_MODULE_ENABLED */ | ||||
|  | ||||
| #ifdef HAL_USART_MODULE_ENABLED | ||||
| #include "stm32f1xx_hal_usart.h" | ||||
| #endif /* HAL_USART_MODULE_ENABLED */ | ||||
|  | ||||
| #ifdef HAL_IRDA_MODULE_ENABLED | ||||
| #include "stm32f1xx_hal_irda.h" | ||||
| #endif /* HAL_IRDA_MODULE_ENABLED */ | ||||
|  | ||||
| #ifdef HAL_SMARTCARD_MODULE_ENABLED | ||||
| #include "stm32f1xx_hal_smartcard.h" | ||||
| #endif /* HAL_SMARTCARD_MODULE_ENABLED */ | ||||
|  | ||||
| #ifdef HAL_WWDG_MODULE_ENABLED | ||||
| #include "stm32f1xx_hal_wwdg.h" | ||||
| #endif /* HAL_WWDG_MODULE_ENABLED */ | ||||
|  | ||||
| #ifdef HAL_PCD_MODULE_ENABLED | ||||
| #include "stm32f1xx_hal_pcd.h" | ||||
| #endif /* HAL_PCD_MODULE_ENABLED */ | ||||
|  | ||||
| #ifdef HAL_HCD_MODULE_ENABLED | ||||
| #include "stm32f1xx_hal_hcd.h" | ||||
| #endif /* HAL_HCD_MODULE_ENABLED */ | ||||
|  | ||||
| #ifdef HAL_MMC_MODULE_ENABLED | ||||
| #include "stm32f1xx_hal_mmc.h" | ||||
| #endif /* HAL_MMC_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 /* __STM32F1xx_HAL_CONF_H */ | ||||
|  | ||||
| /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ | ||||
							
								
								
									
										74
									
								
								Core-20201227-01/Inc/stm32f1xx_it.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								Core-20201227-01/Inc/stm32f1xx_it.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,74 @@ | ||||
| /* USER CODE BEGIN Header */ | ||||
| /** | ||||
|   ****************************************************************************** | ||||
|   * @file    stm32f1xx_it.h | ||||
|   * @brief   This file contains the headers of the interrupt handlers. | ||||
|   ****************************************************************************** | ||||
|   * @attention | ||||
|   * | ||||
|   * <h2><center>© Copyright (c) 2020 STMicroelectronics. | ||||
|   * All rights reserved.</center></h2> | ||||
|   * | ||||
|   * This software component is licensed by ST under BSD 3-Clause license, | ||||
|   * the "License"; You may not use this file except in compliance with the | ||||
|   * License. You may obtain a copy of the License at: | ||||
|   *                        opensource.org/licenses/BSD-3-Clause | ||||
|   * | ||||
|  ****************************************************************************** | ||||
|   */ | ||||
| /* USER CODE END Header */ | ||||
|  | ||||
| /* Define to prevent recursive inclusion -------------------------------------*/ | ||||
| #ifndef __STM32F1xx_IT_H | ||||
| #define __STM32F1xx_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); | ||||
| void EXTI4_IRQHandler(void); | ||||
| void ADC1_2_IRQHandler(void); | ||||
| void SPI2_IRQHandler(void); | ||||
| void UART4_IRQHandler(void); | ||||
| void UART5_IRQHandler(void); | ||||
| /* USER CODE BEGIN EFP */ | ||||
|  | ||||
| /* USER CODE END EFP */ | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| } | ||||
| #endif | ||||
|  | ||||
| #endif /* __STM32F1xx_IT_H */ | ||||
|  | ||||
| /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ | ||||
							
								
								
									
										60
									
								
								Core-20201227-01/Inc/usart.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								Core-20201227-01/Inc/usart.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,60 @@ | ||||
| /** | ||||
|   ****************************************************************************** | ||||
|   * File Name          : USART.h | ||||
|   * Description        : This file provides code for the configuration | ||||
|   *                      of the USART instances. | ||||
|   ****************************************************************************** | ||||
|   * @attention | ||||
|   * | ||||
|   * <h2><center>© Copyright (c) 2020 STMicroelectronics. | ||||
|   * All rights reserved.</center></h2> | ||||
|   * | ||||
|   * This software component is licensed by ST under BSD 3-Clause license, | ||||
|   * the "License"; You may not use this file except in compliance with the | ||||
|   * License. You may obtain a copy of the License at: | ||||
|   *                        opensource.org/licenses/BSD-3-Clause | ||||
|   * | ||||
|   ****************************************************************************** | ||||
|   */ | ||||
| /* Define to prevent recursive inclusion -------------------------------------*/ | ||||
| #ifndef __usart_H | ||||
| #define __usart_H | ||||
| #ifdef __cplusplus | ||||
|  extern "C" { | ||||
| #endif | ||||
|  | ||||
| /* Includes ------------------------------------------------------------------*/ | ||||
| #include "main.h" | ||||
|  | ||||
| /* USER CODE BEGIN Includes */ | ||||
|  | ||||
| /* USER CODE END Includes */ | ||||
|  | ||||
| extern UART_HandleTypeDef huart4; | ||||
| extern UART_HandleTypeDef huart5; | ||||
|  | ||||
| /* USER CODE BEGIN Private defines */ | ||||
|  | ||||
| /* USER CODE END Private defines */ | ||||
|  | ||||
| void MX_UART4_Init(void); | ||||
| void MX_UART5_Init(void); | ||||
|  | ||||
| /* USER CODE BEGIN Prototypes */ | ||||
|  | ||||
| /* USER CODE END Prototypes */ | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| } | ||||
| #endif | ||||
| #endif /*__ usart_H */ | ||||
|  | ||||
| /** | ||||
|   * @} | ||||
|   */ | ||||
|  | ||||
| /** | ||||
|   * @} | ||||
|   */ | ||||
|  | ||||
| /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ | ||||
							
								
								
									
										116
									
								
								Core-20201227-01/Src/adc.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										116
									
								
								Core-20201227-01/Src/adc.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,116 @@ | ||||
| /** | ||||
|   ****************************************************************************** | ||||
|   * File Name          : ADC.c | ||||
|   * Description        : This file provides code for the configuration | ||||
|   *                      of the ADC instances. | ||||
|   ****************************************************************************** | ||||
|   * @attention | ||||
|   * | ||||
|   * <h2><center>© Copyright (c) 2020 STMicroelectronics. | ||||
|   * All rights reserved.</center></h2> | ||||
|   * | ||||
|   * This software component is licensed by ST under BSD 3-Clause license, | ||||
|   * the "License"; You may not use this file except in compliance with the | ||||
|   * License. You may obtain a copy of the License at: | ||||
|   *                        opensource.org/licenses/BSD-3-Clause | ||||
|   * | ||||
|   ****************************************************************************** | ||||
|   */ | ||||
|  | ||||
| /* Includes ------------------------------------------------------------------*/ | ||||
| #include "adc.h" | ||||
|  | ||||
| /* USER CODE BEGIN 0 */ | ||||
|  | ||||
| /* USER CODE END 0 */ | ||||
|  | ||||
| ADC_HandleTypeDef hadc1; | ||||
|  | ||||
| /* ADC1 init function */ | ||||
| void MX_ADC1_Init(void) | ||||
| { | ||||
|   ADC_ChannelConfTypeDef sConfig = {0}; | ||||
|  | ||||
|   /** Common config | ||||
|   */ | ||||
|   hadc1.Instance = ADC1; | ||||
|   hadc1.Init.ScanConvMode = ADC_SCAN_DISABLE; | ||||
|   hadc1.Init.ContinuousConvMode = ENABLE; | ||||
|   hadc1.Init.DiscontinuousConvMode = DISABLE; | ||||
|   hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START; | ||||
|   hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT; | ||||
|   hadc1.Init.NbrOfConversion = 1; | ||||
|   if (HAL_ADC_Init(&hadc1) != HAL_OK) | ||||
|   { | ||||
|     Error_Handler(); | ||||
|   } | ||||
|   /** Configure Regular Channel | ||||
|   */ | ||||
|   sConfig.Channel = ADC_CHANNEL_1; | ||||
|   sConfig.Rank = ADC_REGULAR_RANK_1; | ||||
|   sConfig.SamplingTime = ADC_SAMPLETIME_71CYCLES_5; | ||||
|   if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK) | ||||
|   { | ||||
|     Error_Handler(); | ||||
|   } | ||||
|  | ||||
| } | ||||
|  | ||||
| void HAL_ADC_MspInit(ADC_HandleTypeDef* adcHandle) | ||||
| { | ||||
|  | ||||
|   GPIO_InitTypeDef GPIO_InitStruct = {0}; | ||||
|   if(adcHandle->Instance==ADC1) | ||||
|   { | ||||
|   /* USER CODE BEGIN ADC1_MspInit 0 */ | ||||
|  | ||||
|   /* USER CODE END ADC1_MspInit 0 */ | ||||
|     /* ADC1 clock enable */ | ||||
|     __HAL_RCC_ADC1_CLK_ENABLE(); | ||||
|  | ||||
|     __HAL_RCC_GPIOA_CLK_ENABLE(); | ||||
|     /**ADC1 GPIO Configuration | ||||
|     PA1     ------> ADC1_IN1 | ||||
|     */ | ||||
|     GPIO_InitStruct.Pin = Frontend_In_Pin; | ||||
|     GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; | ||||
|     HAL_GPIO_Init(Frontend_In_GPIO_Port, &GPIO_InitStruct); | ||||
|  | ||||
|     /* ADC1 interrupt Init */ | ||||
|     HAL_NVIC_SetPriority(ADC1_2_IRQn, 0, 0); | ||||
|     HAL_NVIC_EnableIRQ(ADC1_2_IRQn); | ||||
|   /* USER CODE BEGIN ADC1_MspInit 1 */ | ||||
|  | ||||
|   /* USER CODE END ADC1_MspInit 1 */ | ||||
|   } | ||||
| } | ||||
|  | ||||
| void HAL_ADC_MspDeInit(ADC_HandleTypeDef* adcHandle) | ||||
| { | ||||
|  | ||||
|   if(adcHandle->Instance==ADC1) | ||||
|   { | ||||
|   /* USER CODE BEGIN ADC1_MspDeInit 0 */ | ||||
|  | ||||
|   /* USER CODE END ADC1_MspDeInit 0 */ | ||||
|     /* Peripheral clock disable */ | ||||
|     __HAL_RCC_ADC1_CLK_DISABLE(); | ||||
|  | ||||
|     /**ADC1 GPIO Configuration | ||||
|     PA1     ------> ADC1_IN1 | ||||
|     */ | ||||
|     HAL_GPIO_DeInit(Frontend_In_GPIO_Port, Frontend_In_Pin); | ||||
|  | ||||
|     /* ADC1 interrupt Deinit */ | ||||
|     HAL_NVIC_DisableIRQ(ADC1_2_IRQn); | ||||
|   /* USER CODE BEGIN ADC1_MspDeInit 1 */ | ||||
|  | ||||
|   /* USER CODE END ADC1_MspDeInit 1 */ | ||||
|   } | ||||
| } | ||||
|  | ||||
| /* USER CODE BEGIN 1 */ | ||||
|  | ||||
| /* USER CODE END 1 */ | ||||
|  | ||||
| /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ | ||||
							
								
								
									
										117
									
								
								Core-20201227-01/Src/gpio.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										117
									
								
								Core-20201227-01/Src/gpio.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,117 @@ | ||||
| /** | ||||
|   ****************************************************************************** | ||||
|   * File Name          : gpio.c | ||||
|   * Description        : This file provides code for the configuration | ||||
|   *                      of all used GPIO pins. | ||||
|   ****************************************************************************** | ||||
|   * @attention | ||||
|   * | ||||
|   * <h2><center>© Copyright (c) 2020 STMicroelectronics. | ||||
|   * All rights reserved.</center></h2> | ||||
|   * | ||||
|   * This software component is licensed by ST under BSD 3-Clause license, | ||||
|   * the "License"; You may not use this file except in compliance with the | ||||
|   * License. You may obtain a copy of the License at: | ||||
|   *                        opensource.org/licenses/BSD-3-Clause | ||||
|   * | ||||
|   ****************************************************************************** | ||||
|   */ | ||||
|  | ||||
| /* 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_GPIOE_CLK_ENABLE(); | ||||
|   __HAL_RCC_GPIOA_CLK_ENABLE(); | ||||
|   __HAL_RCC_GPIOB_CLK_ENABLE(); | ||||
|   __HAL_RCC_GPIOC_CLK_ENABLE(); | ||||
|   __HAL_RCC_GPIOD_CLK_ENABLE(); | ||||
|  | ||||
|   /*Configure GPIO pin Output Level */ | ||||
|   HAL_GPIO_WritePin(GPIOE, Loop_Enable_Pin|Loop_Disable_Pin|LED_Green_Pin|LED_Red_Pin | ||||
|                           |Debug_Signal_2_Pin, GPIO_PIN_RESET); | ||||
|  | ||||
|   /*Configure GPIO pin Output Level */ | ||||
|   HAL_GPIO_WritePin(GPIOA, ETHER_RES_Pin|ETHER_CS_Pin, GPIO_PIN_RESET); | ||||
|  | ||||
|   /*Configure GPIO pin Output Level */ | ||||
|   HAL_GPIO_WritePin(GPIOB, Debug_Signal_1_Pin|EEPROM_CS_Pin|Display_DC_Pin|Display_RES_Pin, GPIO_PIN_RESET); | ||||
|  | ||||
|   /*Configure GPIO pin Output Level */ | ||||
|   HAL_GPIO_WritePin(GPIOD, Frontend_Out_Pin|Display_CS_Pin, GPIO_PIN_RESET); | ||||
|  | ||||
|   /*Configure GPIO pins : PEPin PEPin PEPin PEPin | ||||
|                            PEPin */ | ||||
|   GPIO_InitStruct.Pin = Loop_Enable_Pin|Loop_Disable_Pin|LED_Green_Pin|LED_Red_Pin | ||||
|                           |Debug_Signal_2_Pin; | ||||
|   GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; | ||||
|   GPIO_InitStruct.Pull = GPIO_NOPULL; | ||||
|   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; | ||||
|   HAL_GPIO_Init(GPIOE, &GPIO_InitStruct); | ||||
|  | ||||
|   /*Configure GPIO pin : PtPin */ | ||||
|   GPIO_InitStruct.Pin = Loop_Status_Pin; | ||||
|   GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING_FALLING; | ||||
|   GPIO_InitStruct.Pull = GPIO_PULLUP; | ||||
|   HAL_GPIO_Init(Loop_Status_GPIO_Port, &GPIO_InitStruct); | ||||
|  | ||||
|   /*Configure GPIO pins : PAPin PAPin */ | ||||
|   GPIO_InitStruct.Pin = ETHER_RES_Pin|ETHER_CS_Pin; | ||||
|   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 pin : PtPin */ | ||||
|   GPIO_InitStruct.Pin = ETHER_INT_Pin; | ||||
|   GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING; | ||||
|   GPIO_InitStruct.Pull = GPIO_NOPULL; | ||||
|   HAL_GPIO_Init(ETHER_INT_GPIO_Port, &GPIO_InitStruct); | ||||
|  | ||||
|   /*Configure GPIO pins : PBPin PBPin PBPin PBPin */ | ||||
|   GPIO_InitStruct.Pin = Debug_Signal_1_Pin|EEPROM_CS_Pin|Display_DC_Pin|Display_RES_Pin; | ||||
|   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 : PDPin PDPin */ | ||||
|   GPIO_InitStruct.Pin = Frontend_Out_Pin|Display_CS_Pin; | ||||
|   GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; | ||||
|   GPIO_InitStruct.Pull = GPIO_NOPULL; | ||||
|   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; | ||||
|   HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); | ||||
|  | ||||
|   /* EXTI interrupt init*/ | ||||
|   HAL_NVIC_SetPriority(EXTI4_IRQn, 0, 0); | ||||
|   HAL_NVIC_EnableIRQ(EXTI4_IRQn); | ||||
|  | ||||
| } | ||||
|  | ||||
| /* USER CODE BEGIN 2 */ | ||||
|  | ||||
| /* USER CODE END 2 */ | ||||
|  | ||||
| /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ | ||||
							
								
								
									
										203
									
								
								Core-20201227-01/Src/main.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										203
									
								
								Core-20201227-01/Src/main.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,203 @@ | ||||
| // Processed by ../tools/insertMyCode.sh | ||||
| /* USER CODE BEGIN Header */ | ||||
| /** | ||||
|   ****************************************************************************** | ||||
|   * @file           : main.c | ||||
|   * @brief          : Main program body | ||||
|   ****************************************************************************** | ||||
|   * @attention | ||||
|   * | ||||
|   * <h2><center>© Copyright (c) 2020 STMicroelectronics. | ||||
|   * All rights reserved.</center></h2> | ||||
|   * | ||||
|   * This software component is licensed by ST under BSD 3-Clause license, | ||||
|   * the "License"; You may not use this file except in compliance with the | ||||
|   * License. You may obtain a copy of the License at: | ||||
|   *                        opensource.org/licenses/BSD-3-Clause | ||||
|   * | ||||
|   ****************************************************************************** | ||||
|   */ | ||||
| /* USER CODE END Header */ | ||||
| /* Includes ------------------------------------------------------------------*/ | ||||
| #include "main.h" | ||||
| #include "adc.h" | ||||
| #include "spi.h" | ||||
| #include "usart.h" | ||||
| #include "gpio.h" | ||||
|  | ||||
| /* Private includes ----------------------------------------------------------*/ | ||||
| /* USER CODE BEGIN Includes */ | ||||
| #include "main2.h" | ||||
|  | ||||
|  | ||||
| /* 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 */ | ||||
|   my_setup_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_ADC1_Init(); | ||||
|   MX_SPI2_Init(); | ||||
|   MX_SPI3_Init(); | ||||
|   MX_UART4_Init(); | ||||
|   MX_UART5_Init(); | ||||
|   MX_SPI1_Init(); | ||||
|   /* USER CODE BEGIN 2 */ | ||||
|   my_setup_2(); | ||||
|  | ||||
|  | ||||
|   /* USER CODE END 2 */ | ||||
|  | ||||
|   /* Infinite loop */ | ||||
|   /* USER CODE BEGIN WHILE */ | ||||
|   while (1) | ||||
|   { | ||||
|     /* USER CODE END WHILE */ | ||||
|  | ||||
|     /* USER CODE BEGIN 3 */ | ||||
|     my_loop(); | ||||
|  | ||||
|   } | ||||
|   /* USER CODE END 3 */ | ||||
| } | ||||
|  | ||||
| /** | ||||
|   * @brief System Clock Configuration | ||||
|   * @retval None | ||||
|   */ | ||||
| void SystemClock_Config(void) | ||||
| { | ||||
|   RCC_OscInitTypeDef RCC_OscInitStruct = {0}; | ||||
|   RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; | ||||
|   RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}; | ||||
|  | ||||
|   /** 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.HSEPredivValue = RCC_HSE_PREDIV_DIV1; | ||||
|   RCC_OscInitStruct.HSIState = RCC_HSI_ON; | ||||
|   RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; | ||||
|   RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; | ||||
|   RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9; | ||||
|   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_DIV2; | ||||
|   RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2; | ||||
|  | ||||
|   if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK) | ||||
|   { | ||||
|     Error_Handler(); | ||||
|   } | ||||
|   PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC; | ||||
|   PeriphClkInit.AdcClockSelection = RCC_ADCPCLK2_DIV8; | ||||
|   if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != 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 */ | ||||
|   my_errorHandler(); | ||||
|  | ||||
|   /* User can add his own implementation to report the HAL error return state */ | ||||
|  | ||||
|   /* USER CODE END Error_Handler_Debug */ | ||||
|   while(1) { }; | ||||
|  | ||||
| } | ||||
|  | ||||
| #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, | ||||
|      tex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ | ||||
|   /* USER CODE END 6 */ | ||||
| } | ||||
| #endif /* USE_FULL_ASSERT */ | ||||
|  | ||||
| /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ | ||||
							
								
								
									
										190
									
								
								Core-20201227-01/Src/main.c-bak
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										190
									
								
								Core-20201227-01/Src/main.c-bak
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,190 @@ | ||||
| /* USER CODE BEGIN Header */ | ||||
| /** | ||||
|   ****************************************************************************** | ||||
|   * @file           : main.c | ||||
|   * @brief          : Main program body | ||||
|   ****************************************************************************** | ||||
|   * @attention | ||||
|   * | ||||
|   * <h2><center>© Copyright (c) 2020 STMicroelectronics. | ||||
|   * All rights reserved.</center></h2> | ||||
|   * | ||||
|   * This software component is licensed by ST under BSD 3-Clause license, | ||||
|   * the "License"; You may not use this file except in compliance with the | ||||
|   * License. You may obtain a copy of the License at: | ||||
|   *                        opensource.org/licenses/BSD-3-Clause | ||||
|   * | ||||
|   ****************************************************************************** | ||||
|   */ | ||||
| /* USER CODE END Header */ | ||||
| /* Includes ------------------------------------------------------------------*/ | ||||
| #include "main.h" | ||||
| #include "adc.h" | ||||
| #include "spi.h" | ||||
| #include "usart.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(); | ||||
|   MX_ADC1_Init(); | ||||
|   MX_SPI2_Init(); | ||||
|   MX_SPI3_Init(); | ||||
|   MX_UART4_Init(); | ||||
|   MX_UART5_Init(); | ||||
|   MX_SPI1_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}; | ||||
|   RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}; | ||||
|  | ||||
|   /** 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.HSEPredivValue = RCC_HSE_PREDIV_DIV1; | ||||
|   RCC_OscInitStruct.HSIState = RCC_HSI_ON; | ||||
|   RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; | ||||
|   RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; | ||||
|   RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9; | ||||
|   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_DIV2; | ||||
|   RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2; | ||||
|  | ||||
|   if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK) | ||||
|   { | ||||
|     Error_Handler(); | ||||
|   } | ||||
|   PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC; | ||||
|   PeriphClkInit.AdcClockSelection = RCC_ADCPCLK2_DIV8; | ||||
|   if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != 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 */ | ||||
|  | ||||
|   /* 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, | ||||
|      tex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ | ||||
|   /* USER CODE END 6 */ | ||||
| } | ||||
| #endif /* USE_FULL_ASSERT */ | ||||
|  | ||||
| /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ | ||||
							
								
								
									
										259
									
								
								Core-20201227-01/Src/spi.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										259
									
								
								Core-20201227-01/Src/spi.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,259 @@ | ||||
| /** | ||||
|   ****************************************************************************** | ||||
|   * File Name          : SPI.c | ||||
|   * Description        : This file provides code for the configuration | ||||
|   *                      of the SPI instances. | ||||
|   ****************************************************************************** | ||||
|   * @attention | ||||
|   * | ||||
|   * <h2><center>© Copyright (c) 2020 STMicroelectronics. | ||||
|   * All rights reserved.</center></h2> | ||||
|   * | ||||
|   * This software component is licensed by ST under BSD 3-Clause license, | ||||
|   * the "License"; You may not use this file except in compliance with the | ||||
|   * License. You may obtain a copy of the License at: | ||||
|   *                        opensource.org/licenses/BSD-3-Clause | ||||
|   * | ||||
|   ****************************************************************************** | ||||
|   */ | ||||
|  | ||||
| /* Includes ------------------------------------------------------------------*/ | ||||
| #include "spi.h" | ||||
|  | ||||
| /* USER CODE BEGIN 0 */ | ||||
|  | ||||
| /* USER CODE END 0 */ | ||||
|  | ||||
| SPI_HandleTypeDef hspi1; | ||||
| SPI_HandleTypeDef hspi2; | ||||
| SPI_HandleTypeDef hspi3; | ||||
|  | ||||
| /* SPI1 init function */ | ||||
| void MX_SPI1_Init(void) | ||||
| { | ||||
|  | ||||
|   hspi1.Instance = SPI1; | ||||
|   hspi1.Init.Mode = SPI_MODE_MASTER; | ||||
|   hspi1.Init.Direction = SPI_DIRECTION_2LINES; | ||||
|   hspi1.Init.DataSize = SPI_DATASIZE_8BIT; | ||||
|   hspi1.Init.CLKPolarity = SPI_POLARITY_LOW; | ||||
|   hspi1.Init.CLKPhase = SPI_PHASE_1EDGE; | ||||
|   hspi1.Init.NSS = SPI_NSS_SOFT; | ||||
|   hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2; | ||||
|   hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB; | ||||
|   hspi1.Init.TIMode = SPI_TIMODE_DISABLE; | ||||
|   hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; | ||||
|   hspi1.Init.CRCPolynomial = 10; | ||||
|   if (HAL_SPI_Init(&hspi1) != HAL_OK) | ||||
|   { | ||||
|     Error_Handler(); | ||||
|   } | ||||
|  | ||||
| } | ||||
| /* SPI2 init function */ | ||||
| void MX_SPI2_Init(void) | ||||
| { | ||||
|  | ||||
|   hspi2.Instance = SPI2; | ||||
|   hspi2.Init.Mode = SPI_MODE_MASTER; | ||||
|   hspi2.Init.Direction = SPI_DIRECTION_2LINES; | ||||
|   hspi2.Init.DataSize = SPI_DATASIZE_8BIT; | ||||
|   hspi2.Init.CLKPolarity = SPI_POLARITY_LOW; | ||||
|   hspi2.Init.CLKPhase = SPI_PHASE_1EDGE; | ||||
|   hspi2.Init.NSS = SPI_NSS_SOFT; | ||||
|   hspi2.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_4; | ||||
|   hspi2.Init.FirstBit = SPI_FIRSTBIT_MSB; | ||||
|   hspi2.Init.TIMode = SPI_TIMODE_DISABLE; | ||||
|   hspi2.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; | ||||
|   hspi2.Init.CRCPolynomial = 10; | ||||
|   if (HAL_SPI_Init(&hspi2) != HAL_OK) | ||||
|   { | ||||
|     Error_Handler(); | ||||
|   } | ||||
|  | ||||
| } | ||||
| /* SPI3 init function */ | ||||
| void MX_SPI3_Init(void) | ||||
| { | ||||
|  | ||||
|   hspi3.Instance = SPI3; | ||||
|   hspi3.Init.Mode = SPI_MODE_MASTER; | ||||
|   hspi3.Init.Direction = SPI_DIRECTION_2LINES; | ||||
|   hspi3.Init.DataSize = SPI_DATASIZE_8BIT; | ||||
|   hspi3.Init.CLKPolarity = SPI_POLARITY_LOW; | ||||
|   hspi3.Init.CLKPhase = SPI_PHASE_1EDGE; | ||||
|   hspi3.Init.NSS = SPI_NSS_SOFT; | ||||
|   hspi3.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2; | ||||
|   hspi3.Init.FirstBit = SPI_FIRSTBIT_MSB; | ||||
|   hspi3.Init.TIMode = SPI_TIMODE_DISABLE; | ||||
|   hspi3.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; | ||||
|   hspi3.Init.CRCPolynomial = 10; | ||||
|   if (HAL_SPI_Init(&hspi3) != HAL_OK) | ||||
|   { | ||||
|     Error_Handler(); | ||||
|   } | ||||
|  | ||||
| } | ||||
|  | ||||
| void HAL_SPI_MspInit(SPI_HandleTypeDef* spiHandle) | ||||
| { | ||||
|  | ||||
|   GPIO_InitTypeDef GPIO_InitStruct = {0}; | ||||
|   if(spiHandle->Instance==SPI1) | ||||
|   { | ||||
|   /* USER CODE BEGIN SPI1_MspInit 0 */ | ||||
|  | ||||
|   /* USER CODE END SPI1_MspInit 0 */ | ||||
|     /* SPI1 clock enable */ | ||||
|     __HAL_RCC_SPI1_CLK_ENABLE(); | ||||
|  | ||||
|     __HAL_RCC_GPIOA_CLK_ENABLE(); | ||||
|     /**SPI1 GPIO Configuration | ||||
|     PA5     ------> SPI1_SCK | ||||
|     PA6     ------> SPI1_MISO | ||||
|     PA7     ------> SPI1_MOSI | ||||
|     */ | ||||
|     GPIO_InitStruct.Pin = ETHER_SCLK_Pin|ETHER_MOSI_Pin; | ||||
|     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; | ||||
|     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; | ||||
|     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); | ||||
|  | ||||
|     GPIO_InitStruct.Pin = ETHER_MISO_Pin; | ||||
|     GPIO_InitStruct.Mode = GPIO_MODE_INPUT; | ||||
|     GPIO_InitStruct.Pull = GPIO_NOPULL; | ||||
|     HAL_GPIO_Init(ETHER_MISO_GPIO_Port, &GPIO_InitStruct); | ||||
|  | ||||
|   /* USER CODE BEGIN SPI1_MspInit 1 */ | ||||
|  | ||||
|   /* USER CODE END SPI1_MspInit 1 */ | ||||
|   } | ||||
|   else if(spiHandle->Instance==SPI2) | ||||
|   { | ||||
|   /* USER CODE BEGIN SPI2_MspInit 0 */ | ||||
|  | ||||
|   /* USER CODE END SPI2_MspInit 0 */ | ||||
|     /* SPI2 clock enable */ | ||||
|     __HAL_RCC_SPI2_CLK_ENABLE(); | ||||
|  | ||||
|     __HAL_RCC_GPIOB_CLK_ENABLE(); | ||||
|     /**SPI2 GPIO Configuration | ||||
|     PB13     ------> SPI2_SCK | ||||
|     PB14     ------> SPI2_MISO | ||||
|     PB15     ------> SPI2_MOSI | ||||
|     */ | ||||
|     GPIO_InitStruct.Pin = EEPROM_SCLK_Pin|EEPROM_MOSI_Pin; | ||||
|     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; | ||||
|     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; | ||||
|     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); | ||||
|  | ||||
|     GPIO_InitStruct.Pin = EEPROM_MISO_Pin; | ||||
|     GPIO_InitStruct.Mode = GPIO_MODE_INPUT; | ||||
|     GPIO_InitStruct.Pull = GPIO_NOPULL; | ||||
|     HAL_GPIO_Init(EEPROM_MISO_GPIO_Port, &GPIO_InitStruct); | ||||
|  | ||||
|     /* SPI2 interrupt Init */ | ||||
|     HAL_NVIC_SetPriority(SPI2_IRQn, 0, 0); | ||||
|     HAL_NVIC_EnableIRQ(SPI2_IRQn); | ||||
|   /* USER CODE BEGIN SPI2_MspInit 1 */ | ||||
|  | ||||
|   /* USER CODE END SPI2_MspInit 1 */ | ||||
|   } | ||||
|   else if(spiHandle->Instance==SPI3) | ||||
|   { | ||||
|   /* USER CODE BEGIN SPI3_MspInit 0 */ | ||||
|  | ||||
|   /* USER CODE END SPI3_MspInit 0 */ | ||||
|     /* SPI3 clock enable */ | ||||
|     __HAL_RCC_SPI3_CLK_ENABLE(); | ||||
|  | ||||
|     __HAL_RCC_GPIOB_CLK_ENABLE(); | ||||
|     /**SPI3 GPIO Configuration | ||||
|     PB3     ------> SPI3_SCK | ||||
|     PB4     ------> SPI3_MISO | ||||
|     PB5     ------> SPI3_MOSI | ||||
|     */ | ||||
|     GPIO_InitStruct.Pin = Display_SCLK_Pin|Display_MOSI_Pin; | ||||
|     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; | ||||
|     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; | ||||
|     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); | ||||
|  | ||||
|     GPIO_InitStruct.Pin = Display_MISO_Pin; | ||||
|     GPIO_InitStruct.Mode = GPIO_MODE_INPUT; | ||||
|     GPIO_InitStruct.Pull = GPIO_NOPULL; | ||||
|     HAL_GPIO_Init(Display_MISO_GPIO_Port, &GPIO_InitStruct); | ||||
|  | ||||
|   /* USER CODE BEGIN SPI3_MspInit 1 */ | ||||
|  | ||||
|   /* USER CODE END SPI3_MspInit 1 */ | ||||
|   } | ||||
| } | ||||
|  | ||||
| void HAL_SPI_MspDeInit(SPI_HandleTypeDef* spiHandle) | ||||
| { | ||||
|  | ||||
|   if(spiHandle->Instance==SPI1) | ||||
|   { | ||||
|   /* USER CODE BEGIN SPI1_MspDeInit 0 */ | ||||
|  | ||||
|   /* USER CODE END SPI1_MspDeInit 0 */ | ||||
|     /* Peripheral clock disable */ | ||||
|     __HAL_RCC_SPI1_CLK_DISABLE(); | ||||
|  | ||||
|     /**SPI1 GPIO Configuration | ||||
|     PA5     ------> SPI1_SCK | ||||
|     PA6     ------> SPI1_MISO | ||||
|     PA7     ------> SPI1_MOSI | ||||
|     */ | ||||
|     HAL_GPIO_DeInit(GPIOA, ETHER_SCLK_Pin|ETHER_MISO_Pin|ETHER_MOSI_Pin); | ||||
|  | ||||
|   /* USER CODE BEGIN SPI1_MspDeInit 1 */ | ||||
|  | ||||
|   /* USER CODE END SPI1_MspDeInit 1 */ | ||||
|   } | ||||
|   else if(spiHandle->Instance==SPI2) | ||||
|   { | ||||
|   /* USER CODE BEGIN SPI2_MspDeInit 0 */ | ||||
|  | ||||
|   /* USER CODE END SPI2_MspDeInit 0 */ | ||||
|     /* Peripheral clock disable */ | ||||
|     __HAL_RCC_SPI2_CLK_DISABLE(); | ||||
|  | ||||
|     /**SPI2 GPIO Configuration | ||||
|     PB13     ------> SPI2_SCK | ||||
|     PB14     ------> SPI2_MISO | ||||
|     PB15     ------> SPI2_MOSI | ||||
|     */ | ||||
|     HAL_GPIO_DeInit(GPIOB, EEPROM_SCLK_Pin|EEPROM_MISO_Pin|EEPROM_MOSI_Pin); | ||||
|  | ||||
|     /* SPI2 interrupt Deinit */ | ||||
|     HAL_NVIC_DisableIRQ(SPI2_IRQn); | ||||
|   /* USER CODE BEGIN SPI2_MspDeInit 1 */ | ||||
|  | ||||
|   /* USER CODE END SPI2_MspDeInit 1 */ | ||||
|   } | ||||
|   else if(spiHandle->Instance==SPI3) | ||||
|   { | ||||
|   /* USER CODE BEGIN SPI3_MspDeInit 0 */ | ||||
|  | ||||
|   /* USER CODE END SPI3_MspDeInit 0 */ | ||||
|     /* Peripheral clock disable */ | ||||
|     __HAL_RCC_SPI3_CLK_DISABLE(); | ||||
|  | ||||
|     /**SPI3 GPIO Configuration | ||||
|     PB3     ------> SPI3_SCK | ||||
|     PB4     ------> SPI3_MISO | ||||
|     PB5     ------> SPI3_MOSI | ||||
|     */ | ||||
|     HAL_GPIO_DeInit(GPIOB, Display_SCLK_Pin|Display_MISO_Pin|Display_MOSI_Pin); | ||||
|  | ||||
|   /* USER CODE BEGIN SPI3_MspDeInit 1 */ | ||||
|  | ||||
|   /* USER CODE END SPI3_MspDeInit 1 */ | ||||
|   } | ||||
| } | ||||
|  | ||||
| /* USER CODE BEGIN 1 */ | ||||
|  | ||||
| /* USER CODE END 1 */ | ||||
|  | ||||
| /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ | ||||
							
								
								
									
										88
									
								
								Core-20201227-01/Src/stm32f1xx_hal_msp.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										88
									
								
								Core-20201227-01/Src/stm32f1xx_hal_msp.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,88 @@ | ||||
| /* USER CODE BEGIN Header */ | ||||
| /** | ||||
|   ****************************************************************************** | ||||
|   * File Name          : stm32f1xx_hal_msp.c | ||||
|   * Description        : This file provides code for the MSP Initialization | ||||
|   *                      and de-Initialization codes. | ||||
|   ****************************************************************************** | ||||
|   * @attention | ||||
|   * | ||||
|   * <h2><center>© Copyright (c) 2020 STMicroelectronics. | ||||
|   * All rights reserved.</center></h2> | ||||
|   * | ||||
|   * This software component is licensed by ST under BSD 3-Clause license, | ||||
|   * the "License"; You may not use this file except in compliance with the | ||||
|   * License. You may obtain a copy of the License at: | ||||
|   *                        opensource.org/licenses/BSD-3-Clause | ||||
|   * | ||||
|   ****************************************************************************** | ||||
|   */ | ||||
| /* 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_AFIO_CLK_ENABLE(); | ||||
|   __HAL_RCC_PWR_CLK_ENABLE(); | ||||
|  | ||||
|   /* System interrupt init*/ | ||||
|  | ||||
|   /** NOJTAG: JTAG-DP Disabled and SW-DP Enabled | ||||
|   */ | ||||
|   __HAL_AFIO_REMAP_SWJ_NOJTAG(); | ||||
|  | ||||
|   /* USER CODE BEGIN MspInit 1 */ | ||||
|  | ||||
|   /* USER CODE END MspInit 1 */ | ||||
| } | ||||
|  | ||||
| /* USER CODE BEGIN 1 */ | ||||
|  | ||||
| /* USER CODE END 1 */ | ||||
|  | ||||
| /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ | ||||
							
								
								
									
										286
									
								
								Core-20201227-01/Src/stm32f1xx_it.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										286
									
								
								Core-20201227-01/Src/stm32f1xx_it.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,286 @@ | ||||
| // Processed by ../tools/insertMyCode.sh | ||||
| /* USER CODE BEGIN Header */ | ||||
| /** | ||||
|   ****************************************************************************** | ||||
|   * @file    stm32f1xx_it.c | ||||
|   * @brief   Interrupt Service Routines. | ||||
|   ****************************************************************************** | ||||
|   * @attention | ||||
|   * | ||||
|   * <h2><center>© Copyright (c) 2020 STMicroelectronics. | ||||
|   * All rights reserved.</center></h2> | ||||
|   * | ||||
|   * This software component is licensed by ST under BSD 3-Clause license, | ||||
|   * the "License"; You may not use this file except in compliance with the | ||||
|   * License. You may obtain a copy of the License at: | ||||
|   *                        opensource.org/licenses/BSD-3-Clause | ||||
|   * | ||||
|   ****************************************************************************** | ||||
|   */ | ||||
| /* USER CODE END Header */ | ||||
|  | ||||
| /* Includes ------------------------------------------------------------------*/ | ||||
| #include "main.h" | ||||
| #include "stm32f1xx_it.h" | ||||
| /* Private includes ----------------------------------------------------------*/ | ||||
| /* USER CODE BEGIN Includes */ | ||||
| #include "main2.h" | ||||
|  | ||||
| /* 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 --------------------------------------------------------*/ | ||||
| extern ADC_HandleTypeDef hadc1; | ||||
| extern SPI_HandleTypeDef hspi2; | ||||
| extern UART_HandleTypeDef huart4; | ||||
| extern UART_HandleTypeDef huart5; | ||||
| /* USER CODE BEGIN EV */ | ||||
|  | ||||
| /* USER CODE END EV */ | ||||
|  | ||||
| /******************************************************************************/ | ||||
| /*           Cortex-M3 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 */ | ||||
|  | ||||
|   /* 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 */ | ||||
|   SYSTICK_Callback(); | ||||
|  | ||||
|  | ||||
|   /* USER CODE END SysTick_IRQn 1 */ | ||||
| } | ||||
|  | ||||
| /******************************************************************************/ | ||||
| /* STM32F1xx 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_stm32f1xx.s).                    */ | ||||
| /******************************************************************************/ | ||||
|  | ||||
| /** | ||||
|   * @brief This function handles EXTI line4 interrupt. | ||||
|   */ | ||||
| void EXTI4_IRQHandler(void) | ||||
| { | ||||
|   /* USER CODE BEGIN EXTI4_IRQn 0 */ | ||||
|  | ||||
|   /* USER CODE END EXTI4_IRQn 0 */ | ||||
|   HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_4); | ||||
|   /* USER CODE BEGIN EXTI4_IRQn 1 */ | ||||
|  | ||||
|   /* USER CODE END EXTI4_IRQn 1 */ | ||||
| } | ||||
|  | ||||
| /** | ||||
|   * @brief This function handles ADC1 and ADC2 global interrupts. | ||||
|   */ | ||||
| void ADC1_2_IRQHandler(void) | ||||
| { | ||||
|   /* USER CODE BEGIN ADC1_2_IRQn 0 */ | ||||
|  | ||||
|   /* USER CODE END ADC1_2_IRQn 0 */ | ||||
|   HAL_ADC_IRQHandler(&hadc1); | ||||
|   /* USER CODE BEGIN ADC1_2_IRQn 1 */ | ||||
|  | ||||
|   /* USER CODE END ADC1_2_IRQn 1 */ | ||||
| } | ||||
|  | ||||
| /** | ||||
|   * @brief This function handles SPI2 global interrupt. | ||||
|   */ | ||||
| void SPI2_IRQHandler(void) | ||||
| { | ||||
|   /* USER CODE BEGIN SPI2_IRQn 0 */ | ||||
|  | ||||
|   /* USER CODE END SPI2_IRQn 0 */ | ||||
|   HAL_SPI_IRQHandler(&hspi2); | ||||
|   /* USER CODE BEGIN SPI2_IRQn 1 */ | ||||
|  | ||||
|   /* USER CODE END SPI2_IRQn 1 */ | ||||
| } | ||||
|  | ||||
| /** | ||||
|   * @brief This function handles UART4 global interrupt. | ||||
|   */ | ||||
| void UART4_IRQHandler(void) | ||||
| { | ||||
|   /* USER CODE BEGIN UART4_IRQn 0 */ | ||||
|  | ||||
|   /* USER CODE END UART4_IRQn 0 */ | ||||
|   HAL_UART_IRQHandler(&huart4); | ||||
|   /* USER CODE BEGIN UART4_IRQn 1 */ | ||||
|  | ||||
|   /* USER CODE END UART4_IRQn 1 */ | ||||
| } | ||||
|  | ||||
|  | ||||
| void mbusCommISR(); | ||||
|  | ||||
| /** | ||||
|   * @brief This function handles UART5 global interrupt. | ||||
|   */ | ||||
| void UART5_IRQHandler(void) | ||||
| { | ||||
|   /* USER CODE BEGIN UART5_IRQn 0 */ | ||||
|  | ||||
|   /* USER CODE END UART5_IRQn 0 */ | ||||
|   // HAL_UART_IRQHandler(&huart5); | ||||
|   /* USER CODE BEGIN UART5_IRQn 1 */ | ||||
|  | ||||
|   mbusCommISR(); | ||||
|  | ||||
|   /* USER CODE END UART5_IRQn 1 */ | ||||
| } | ||||
|  | ||||
| /* USER CODE BEGIN 1 */ | ||||
|  | ||||
| /* USER CODE END 1 */ | ||||
| /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ | ||||
							
								
								
									
										276
									
								
								Core-20201227-01/Src/stm32f1xx_it.c-bak
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										276
									
								
								Core-20201227-01/Src/stm32f1xx_it.c-bak
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,276 @@ | ||||
| /* USER CODE BEGIN Header */ | ||||
| /** | ||||
|   ****************************************************************************** | ||||
|   * @file    stm32f1xx_it.c | ||||
|   * @brief   Interrupt Service Routines. | ||||
|   ****************************************************************************** | ||||
|   * @attention | ||||
|   * | ||||
|   * <h2><center>© Copyright (c) 2020 STMicroelectronics. | ||||
|   * All rights reserved.</center></h2> | ||||
|   * | ||||
|   * This software component is licensed by ST under BSD 3-Clause license, | ||||
|   * the "License"; You may not use this file except in compliance with the | ||||
|   * License. You may obtain a copy of the License at: | ||||
|   *                        opensource.org/licenses/BSD-3-Clause | ||||
|   * | ||||
|   ****************************************************************************** | ||||
|   */ | ||||
| /* USER CODE END Header */ | ||||
|  | ||||
| /* Includes ------------------------------------------------------------------*/ | ||||
| #include "main.h" | ||||
| #include "stm32f1xx_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 --------------------------------------------------------*/ | ||||
| extern ADC_HandleTypeDef hadc1; | ||||
| extern SPI_HandleTypeDef hspi2; | ||||
| extern UART_HandleTypeDef huart4; | ||||
| extern UART_HandleTypeDef huart5; | ||||
| /* USER CODE BEGIN EV */ | ||||
|  | ||||
| /* USER CODE END EV */ | ||||
|  | ||||
| /******************************************************************************/ | ||||
| /*           Cortex-M3 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 */ | ||||
|  | ||||
|   /* 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 */ | ||||
| } | ||||
|  | ||||
| /******************************************************************************/ | ||||
| /* STM32F1xx 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_stm32f1xx.s).                    */ | ||||
| /******************************************************************************/ | ||||
|  | ||||
| /** | ||||
|   * @brief This function handles EXTI line4 interrupt. | ||||
|   */ | ||||
| void EXTI4_IRQHandler(void) | ||||
| { | ||||
|   /* USER CODE BEGIN EXTI4_IRQn 0 */ | ||||
|  | ||||
|   /* USER CODE END EXTI4_IRQn 0 */ | ||||
|   HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_4); | ||||
|   /* USER CODE BEGIN EXTI4_IRQn 1 */ | ||||
|  | ||||
|   /* USER CODE END EXTI4_IRQn 1 */ | ||||
| } | ||||
|  | ||||
| /** | ||||
|   * @brief This function handles ADC1 and ADC2 global interrupts. | ||||
|   */ | ||||
| void ADC1_2_IRQHandler(void) | ||||
| { | ||||
|   /* USER CODE BEGIN ADC1_2_IRQn 0 */ | ||||
|  | ||||
|   /* USER CODE END ADC1_2_IRQn 0 */ | ||||
|   HAL_ADC_IRQHandler(&hadc1); | ||||
|   /* USER CODE BEGIN ADC1_2_IRQn 1 */ | ||||
|  | ||||
|   /* USER CODE END ADC1_2_IRQn 1 */ | ||||
| } | ||||
|  | ||||
| /** | ||||
|   * @brief This function handles SPI2 global interrupt. | ||||
|   */ | ||||
| void SPI2_IRQHandler(void) | ||||
| { | ||||
|   /* USER CODE BEGIN SPI2_IRQn 0 */ | ||||
|  | ||||
|   /* USER CODE END SPI2_IRQn 0 */ | ||||
|   HAL_SPI_IRQHandler(&hspi2); | ||||
|   /* USER CODE BEGIN SPI2_IRQn 1 */ | ||||
|  | ||||
|   /* USER CODE END SPI2_IRQn 1 */ | ||||
| } | ||||
|  | ||||
| /** | ||||
|   * @brief This function handles UART4 global interrupt. | ||||
|   */ | ||||
| void UART4_IRQHandler(void) | ||||
| { | ||||
|   /* USER CODE BEGIN UART4_IRQn 0 */ | ||||
|  | ||||
|   /* USER CODE END UART4_IRQn 0 */ | ||||
|   HAL_UART_IRQHandler(&huart4); | ||||
|   /* USER CODE BEGIN UART4_IRQn 1 */ | ||||
|  | ||||
|   /* USER CODE END UART4_IRQn 1 */ | ||||
| } | ||||
|  | ||||
| /** | ||||
|   * @brief This function handles UART5 global interrupt. | ||||
|   */ | ||||
| void UART5_IRQHandler(void) | ||||
| { | ||||
|   /* USER CODE BEGIN UART5_IRQn 0 */ | ||||
|  | ||||
|   /* USER CODE END UART5_IRQn 0 */ | ||||
|   HAL_UART_IRQHandler(&huart5); | ||||
|   /* USER CODE BEGIN UART5_IRQn 1 */ | ||||
|  | ||||
|   /* USER CODE END UART5_IRQn 1 */ | ||||
| } | ||||
|  | ||||
| /* USER CODE BEGIN 1 */ | ||||
|  | ||||
| /* USER CODE END 1 */ | ||||
| /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ | ||||
							
								
								
									
										408
									
								
								Core-20201227-01/Src/system_stm32f1xx.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										408
									
								
								Core-20201227-01/Src/system_stm32f1xx.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,408 @@ | ||||
| /** | ||||
|   ****************************************************************************** | ||||
|   * @file    system_stm32f1xx.c | ||||
|   * @author  MCD Application Team | ||||
|   * @brief   CMSIS Cortex-M3 Device Peripheral Access Layer System Source File. | ||||
|   *  | ||||
|   * 1.  This file provides two functions and one global variable to be called from  | ||||
|   *     user application: | ||||
|   *      - SystemInit(): Setups the system clock (System clock source, PLL Multiplier | ||||
|   *                      factors, AHB/APBx prescalers and Flash settings).  | ||||
|   *                      This function is called at startup just after reset and  | ||||
|   *                      before branch to main program. This call is made inside | ||||
|   *                      the "startup_stm32f1xx_xx.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. | ||||
|   * | ||||
|   * 2. After each device reset the HSI (8 MHz) is used as system clock source. | ||||
|   *    Then SystemInit() function is called, in "startup_stm32f1xx_xx.s" file, to | ||||
|   *    configure the system clock before to branch to main program. | ||||
|   * | ||||
|   * 4. The default value of HSE crystal is set to 8 MHz (or 25 MHz, depending on | ||||
|   *    the product used), refer to "HSE_VALUE".  | ||||
|   *    When HSE is used as system clock source, directly or through PLL, and you | ||||
|   *    are using different crystal you have to adapt the HSE value to your own | ||||
|   *    configuration. | ||||
|   *         | ||||
|   ****************************************************************************** | ||||
|   * @attention | ||||
|   * | ||||
|   * <h2><center>© Copyright (c) 2017 STMicroelectronics. | ||||
|   * All rights reserved.</center></h2> | ||||
|   * | ||||
|   * This software component is licensed by ST under BSD 3-Clause license, | ||||
|   * the "License"; You may not use this file except in compliance with the | ||||
|   * License. You may obtain a copy of the License at: | ||||
|   *                        opensource.org/licenses/BSD-3-Clause | ||||
|   * | ||||
|   ****************************************************************************** | ||||
|   */ | ||||
|  | ||||
| /** @addtogroup CMSIS | ||||
|   * @{ | ||||
|   */ | ||||
|  | ||||
| /** @addtogroup stm32f1xx_system | ||||
|   * @{ | ||||
|   */   | ||||
|    | ||||
| /** @addtogroup STM32F1xx_System_Private_Includes | ||||
|   * @{ | ||||
|   */ | ||||
|  | ||||
| #include "stm32f1xx.h" | ||||
|  | ||||
| /** | ||||
|   * @} | ||||
|   */ | ||||
|  | ||||
| /** @addtogroup STM32F1xx_System_Private_TypesDefinitions | ||||
|   * @{ | ||||
|   */ | ||||
|  | ||||
| /** | ||||
|   * @} | ||||
|   */ | ||||
|  | ||||
| /** @addtogroup STM32F1xx_System_Private_Defines | ||||
|   * @{ | ||||
|   */ | ||||
|  | ||||
| #if !defined  (HSE_VALUE)  | ||||
|   #define HSE_VALUE               8000000U /*!< Default value of the External oscillator in Hz. | ||||
|                                                 This value can be provided and adapted by the user application. */ | ||||
| #endif /* HSE_VALUE */ | ||||
|  | ||||
| #if !defined  (HSI_VALUE) | ||||
|   #define HSI_VALUE               8000000U /*!< Default value of the Internal oscillator in Hz. | ||||
|                                                 This value can be provided and adapted by the user application. */ | ||||
| #endif /* HSI_VALUE */ | ||||
|  | ||||
| /*!< Uncomment the following line if you need to use external SRAM  */  | ||||
| #if defined(STM32F100xE) || defined(STM32F101xE) || defined(STM32F101xG) || defined(STM32F103xE) || defined(STM32F103xG) | ||||
| /* #define DATA_IN_ExtSRAM */ | ||||
| #endif /* STM32F100xE || STM32F101xE || STM32F101xG || STM32F103xE || STM32F103xG */ | ||||
|  | ||||
| /* 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 STM32F1xx_System_Private_Macros | ||||
|   * @{ | ||||
|   */ | ||||
|  | ||||
| /** | ||||
|   * @} | ||||
|   */ | ||||
|  | ||||
| /** @addtogroup STM32F1xx_System_Private_Variables | ||||
|   * @{ | ||||
|   */ | ||||
|  | ||||
|   /* This 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 = 16000000; | ||||
| const uint8_t AHBPrescTable[16U] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9}; | ||||
| const uint8_t APBPrescTable[8U] =  {0, 0, 0, 0, 1, 2, 3, 4}; | ||||
|  | ||||
| /** | ||||
|   * @} | ||||
|   */ | ||||
|  | ||||
| /** @addtogroup STM32F1xx_System_Private_FunctionPrototypes | ||||
|   * @{ | ||||
|   */ | ||||
|  | ||||
| #if defined(STM32F100xE) || defined(STM32F101xE) || defined(STM32F101xG) || defined(STM32F103xE) || defined(STM32F103xG) | ||||
| #ifdef DATA_IN_ExtSRAM | ||||
|   static void SystemInit_ExtMemCtl(void);  | ||||
| #endif /* DATA_IN_ExtSRAM */ | ||||
| #endif /* STM32F100xE || STM32F101xE || STM32F101xG || STM32F103xE || STM32F103xG */ | ||||
|  | ||||
| /** | ||||
|   * @} | ||||
|   */ | ||||
|  | ||||
| /** @addtogroup STM32F1xx_System_Private_Functions | ||||
|   * @{ | ||||
|   */ | ||||
|  | ||||
| /** | ||||
|   * @brief  Setup the microcontroller system | ||||
|   *         Initialize the Embedded Flash Interface, the PLL and update the  | ||||
|   *         SystemCoreClock variable. | ||||
|   * @note   This function should be used only after reset. | ||||
|   * @param  None | ||||
|   * @retval None | ||||
|   */ | ||||
| void SystemInit (void) | ||||
| { | ||||
| #if defined(STM32F100xE) || defined(STM32F101xE) || defined(STM32F101xG) || defined(STM32F103xE) || defined(STM32F103xG) | ||||
|   #ifdef DATA_IN_ExtSRAM | ||||
|     SystemInit_ExtMemCtl();  | ||||
|   #endif /* DATA_IN_ExtSRAM */ | ||||
| #endif  | ||||
|  | ||||
|   /* Configure the Vector Table location -------------------------------------*/ | ||||
| #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 by the PLL factors. | ||||
|   *          | ||||
|   *         (*) HSI_VALUE is a constant defined in stm32f1xx.h file (default value | ||||
|   *             8 MHz) but the real value may vary depending on the variations | ||||
|   *             in voltage and temperature.    | ||||
|   *     | ||||
|   *         (**) HSE_VALUE is a constant defined in stm32f1xx.h file (default value | ||||
|   *              8 MHz or 25 MHz, depending on the product used), 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 = 0U, pllmull = 0U, pllsource = 0U; | ||||
|  | ||||
| #if defined(STM32F105xC) || defined(STM32F107xC) | ||||
|   uint32_t prediv1source = 0U, prediv1factor = 0U, prediv2factor = 0U, pll2mull = 0U; | ||||
| #endif /* STM32F105xC */ | ||||
|  | ||||
| #if defined(STM32F100xB) || defined(STM32F100xE) | ||||
|   uint32_t prediv1factor = 0U; | ||||
| #endif /* STM32F100xB or STM32F100xE */ | ||||
|      | ||||
|   /* Get SYSCLK source -------------------------------------------------------*/ | ||||
|   tmp = RCC->CFGR & RCC_CFGR_SWS; | ||||
|    | ||||
|   switch (tmp) | ||||
|   { | ||||
|     case 0x00U:  /* HSI used as system clock */ | ||||
|       SystemCoreClock = HSI_VALUE; | ||||
|       break; | ||||
|     case 0x04U:  /* HSE used as system clock */ | ||||
|       SystemCoreClock = HSE_VALUE; | ||||
|       break; | ||||
|     case 0x08U:  /* PLL used as system clock */ | ||||
|  | ||||
|       /* Get PLL clock source and multiplication factor ----------------------*/ | ||||
|       pllmull = RCC->CFGR & RCC_CFGR_PLLMULL; | ||||
|       pllsource = RCC->CFGR & RCC_CFGR_PLLSRC; | ||||
|        | ||||
| #if !defined(STM32F105xC) && !defined(STM32F107xC)       | ||||
|       pllmull = ( pllmull >> 18U) + 2U; | ||||
|        | ||||
|       if (pllsource == 0x00U) | ||||
|       { | ||||
|         /* HSI oscillator clock divided by 2 selected as PLL clock entry */ | ||||
|         SystemCoreClock = (HSI_VALUE >> 1U) * pllmull; | ||||
|       } | ||||
|       else | ||||
|       { | ||||
|  #if defined(STM32F100xB) || defined(STM32F100xE) | ||||
|        prediv1factor = (RCC->CFGR2 & RCC_CFGR2_PREDIV1) + 1U; | ||||
|        /* HSE oscillator clock selected as PREDIV1 clock entry */ | ||||
|        SystemCoreClock = (HSE_VALUE / prediv1factor) * pllmull;  | ||||
|  #else | ||||
|         /* HSE selected as PLL clock entry */ | ||||
|         if ((RCC->CFGR & RCC_CFGR_PLLXTPRE) != (uint32_t)RESET) | ||||
|         {/* HSE oscillator clock divided by 2 */ | ||||
|           SystemCoreClock = (HSE_VALUE >> 1U) * pllmull; | ||||
|         } | ||||
|         else | ||||
|         { | ||||
|           SystemCoreClock = HSE_VALUE * pllmull; | ||||
|         } | ||||
|  #endif | ||||
|       } | ||||
| #else | ||||
|       pllmull = pllmull >> 18U; | ||||
|        | ||||
|       if (pllmull != 0x0DU) | ||||
|       { | ||||
|          pllmull += 2U; | ||||
|       } | ||||
|       else | ||||
|       { /* PLL multiplication factor = PLL input clock * 6.5 */ | ||||
|         pllmull = 13U / 2U;  | ||||
|       } | ||||
|              | ||||
|       if (pllsource == 0x00U) | ||||
|       { | ||||
|         /* HSI oscillator clock divided by 2 selected as PLL clock entry */ | ||||
|         SystemCoreClock = (HSI_VALUE >> 1U) * pllmull; | ||||
|       } | ||||
|       else | ||||
|       {/* PREDIV1 selected as PLL clock entry */ | ||||
|          | ||||
|         /* Get PREDIV1 clock source and division factor */ | ||||
|         prediv1source = RCC->CFGR2 & RCC_CFGR2_PREDIV1SRC; | ||||
|         prediv1factor = (RCC->CFGR2 & RCC_CFGR2_PREDIV1) + 1U; | ||||
|          | ||||
|         if (prediv1source == 0U) | ||||
|         {  | ||||
|           /* HSE oscillator clock selected as PREDIV1 clock entry */ | ||||
|           SystemCoreClock = (HSE_VALUE / prediv1factor) * pllmull;           | ||||
|         } | ||||
|         else | ||||
|         {/* PLL2 clock selected as PREDIV1 clock entry */ | ||||
|            | ||||
|           /* Get PREDIV2 division factor and PLL2 multiplication factor */ | ||||
|           prediv2factor = ((RCC->CFGR2 & RCC_CFGR2_PREDIV2) >> 4U) + 1U; | ||||
|           pll2mull = ((RCC->CFGR2 & RCC_CFGR2_PLL2MUL) >> 8U) + 2U;  | ||||
|           SystemCoreClock = (((HSE_VALUE / prediv2factor) * pll2mull) / prediv1factor) * pllmull;                          | ||||
|         } | ||||
|       } | ||||
| #endif /* STM32F105xC */  | ||||
|       break; | ||||
|  | ||||
|     default: | ||||
|       SystemCoreClock = HSI_VALUE; | ||||
|       break; | ||||
|   } | ||||
|    | ||||
|   /* Compute HCLK clock frequency ----------------*/ | ||||
|   /* Get HCLK prescaler */ | ||||
|   tmp = AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> 4U)]; | ||||
|   /* HCLK clock frequency */ | ||||
|   SystemCoreClock >>= tmp;   | ||||
| } | ||||
|  | ||||
| #if defined(STM32F100xE) || defined(STM32F101xE) || defined(STM32F101xG) || defined(STM32F103xE) || defined(STM32F103xG) | ||||
| /** | ||||
|   * @brief  Setup the external memory controller. Called in startup_stm32f1xx.s  | ||||
|   *          before jump to __main | ||||
|   * @param  None | ||||
|   * @retval None | ||||
|   */  | ||||
| #ifdef DATA_IN_ExtSRAM | ||||
| /** | ||||
|   * @brief  Setup the external memory controller.  | ||||
|   *         Called in startup_stm32f1xx_xx.s/.c before jump to main. | ||||
|   *         This function configures the external SRAM mounted on STM3210E-EVAL | ||||
|   *         board (STM32 High density devices). This SRAM will be used as program | ||||
|   *         data memory (including heap and stack). | ||||
|   * @param  None | ||||
|   * @retval None | ||||
|   */  | ||||
| void SystemInit_ExtMemCtl(void)  | ||||
| { | ||||
|   __IO uint32_t tmpreg; | ||||
|   /*!< FSMC Bank1 NOR/SRAM3 is used for the STM3210E-EVAL, if another Bank is  | ||||
|     required, then adjust the Register Addresses */ | ||||
|  | ||||
|   /* Enable FSMC clock */ | ||||
|   RCC->AHBENR = 0x00000114U; | ||||
|  | ||||
|   /* Delay after an RCC peripheral clock enabling */ | ||||
|   tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_FSMCEN); | ||||
|    | ||||
|   /* Enable GPIOD, GPIOE, GPIOF and GPIOG clocks */ | ||||
|   RCC->APB2ENR = 0x000001E0U; | ||||
|    | ||||
|   /* Delay after an RCC peripheral clock enabling */ | ||||
|   tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_IOPDEN); | ||||
|  | ||||
|   (void)(tmpreg); | ||||
|    | ||||
| /* ---------------  SRAM Data lines, NOE and NWE configuration ---------------*/ | ||||
| /*----------------  SRAM Address lines configuration -------------------------*/ | ||||
| /*----------------  NOE and NWE configuration --------------------------------*/   | ||||
| /*----------------  NE3 configuration ----------------------------------------*/ | ||||
| /*----------------  NBL0, NBL1 configuration ---------------------------------*/ | ||||
|    | ||||
|   GPIOD->CRL = 0x44BB44BBU;   | ||||
|   GPIOD->CRH = 0xBBBBBBBBU; | ||||
|  | ||||
|   GPIOE->CRL = 0xB44444BBU;   | ||||
|   GPIOE->CRH = 0xBBBBBBBBU; | ||||
|  | ||||
|   GPIOF->CRL = 0x44BBBBBBU;   | ||||
|   GPIOF->CRH = 0xBBBB4444U; | ||||
|  | ||||
|   GPIOG->CRL = 0x44BBBBBBU;   | ||||
|   GPIOG->CRH = 0x444B4B44U; | ||||
|     | ||||
| /*----------------  FSMC Configuration ---------------------------------------*/   | ||||
| /*----------------  Enable FSMC Bank1_SRAM Bank ------------------------------*/ | ||||
|    | ||||
|   FSMC_Bank1->BTCR[4U] = 0x00001091U; | ||||
|   FSMC_Bank1->BTCR[5U] = 0x00110212U; | ||||
| } | ||||
| #endif /* DATA_IN_ExtSRAM */ | ||||
| #endif /* STM32F100xE || STM32F101xE || STM32F101xG || STM32F103xE || STM32F103xG */ | ||||
|  | ||||
| /** | ||||
|   * @} | ||||
|   */ | ||||
|  | ||||
| /** | ||||
|   * @} | ||||
|   */ | ||||
|    | ||||
| /** | ||||
|   * @} | ||||
|   */     | ||||
| /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ | ||||
							
								
								
									
										185
									
								
								Core-20201227-01/Src/usart.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										185
									
								
								Core-20201227-01/Src/usart.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,185 @@ | ||||
| /** | ||||
|   ****************************************************************************** | ||||
|   * File Name          : USART.c | ||||
|   * Description        : This file provides code for the configuration | ||||
|   *                      of the USART instances. | ||||
|   ****************************************************************************** | ||||
|   * @attention | ||||
|   * | ||||
|   * <h2><center>© Copyright (c) 2020 STMicroelectronics. | ||||
|   * All rights reserved.</center></h2> | ||||
|   * | ||||
|   * This software component is licensed by ST under BSD 3-Clause license, | ||||
|   * the "License"; You may not use this file except in compliance with the | ||||
|   * License. You may obtain a copy of the License at: | ||||
|   *                        opensource.org/licenses/BSD-3-Clause | ||||
|   * | ||||
|   ****************************************************************************** | ||||
|   */ | ||||
|  | ||||
| /* Includes ------------------------------------------------------------------*/ | ||||
| #include "usart.h" | ||||
|  | ||||
| /* USER CODE BEGIN 0 */ | ||||
|  | ||||
| /* USER CODE END 0 */ | ||||
|  | ||||
| UART_HandleTypeDef huart4; | ||||
| UART_HandleTypeDef huart5; | ||||
|  | ||||
| /* UART4 init function */ | ||||
| void MX_UART4_Init(void) | ||||
| { | ||||
|  | ||||
|   huart4.Instance = UART4; | ||||
|   huart4.Init.BaudRate = 115200; | ||||
|   huart4.Init.WordLength = UART_WORDLENGTH_8B; | ||||
|   huart4.Init.StopBits = UART_STOPBITS_1; | ||||
|   huart4.Init.Parity = UART_PARITY_NONE; | ||||
|   huart4.Init.Mode = UART_MODE_TX_RX; | ||||
|   huart4.Init.HwFlowCtl = UART_HWCONTROL_NONE; | ||||
|   huart4.Init.OverSampling = UART_OVERSAMPLING_16; | ||||
|   if (HAL_UART_Init(&huart4) != HAL_OK) | ||||
|   { | ||||
|     Error_Handler(); | ||||
|   } | ||||
|  | ||||
| } | ||||
| /* UART5 init function */ | ||||
| void MX_UART5_Init(void) | ||||
| { | ||||
|  | ||||
|   huart5.Instance = UART5; | ||||
|   huart5.Init.BaudRate = 2400; | ||||
|   huart5.Init.WordLength = UART_WORDLENGTH_9B; | ||||
|   huart5.Init.StopBits = UART_STOPBITS_1; | ||||
|   huart5.Init.Parity = UART_PARITY_EVEN; | ||||
|   huart5.Init.Mode = UART_MODE_TX_RX; | ||||
|   huart5.Init.HwFlowCtl = UART_HWCONTROL_NONE; | ||||
|   huart5.Init.OverSampling = UART_OVERSAMPLING_16; | ||||
|   if (HAL_UART_Init(&huart5) != HAL_OK) | ||||
|   { | ||||
|     Error_Handler(); | ||||
|   } | ||||
|  | ||||
| } | ||||
|  | ||||
| void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle) | ||||
| { | ||||
|  | ||||
|   GPIO_InitTypeDef GPIO_InitStruct = {0}; | ||||
|   if(uartHandle->Instance==UART4) | ||||
|   { | ||||
|   /* USER CODE BEGIN UART4_MspInit 0 */ | ||||
|  | ||||
|   /* USER CODE END UART4_MspInit 0 */ | ||||
|     /* UART4 clock enable */ | ||||
|     __HAL_RCC_UART4_CLK_ENABLE(); | ||||
|  | ||||
|     __HAL_RCC_GPIOC_CLK_ENABLE(); | ||||
|     /**UART4 GPIO Configuration | ||||
|     PC10     ------> UART4_TX | ||||
|     PC11     ------> UART4_RX | ||||
|     */ | ||||
|     GPIO_InitStruct.Pin = Debug_TX_Pin; | ||||
|     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; | ||||
|     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; | ||||
|     HAL_GPIO_Init(Debug_TX_GPIO_Port, &GPIO_InitStruct); | ||||
|  | ||||
|     GPIO_InitStruct.Pin = Debug_RX_Pin; | ||||
|     GPIO_InitStruct.Mode = GPIO_MODE_INPUT; | ||||
|     GPIO_InitStruct.Pull = GPIO_NOPULL; | ||||
|     HAL_GPIO_Init(Debug_RX_GPIO_Port, &GPIO_InitStruct); | ||||
|  | ||||
|     /* UART4 interrupt Init */ | ||||
|     HAL_NVIC_SetPriority(UART4_IRQn, 0, 0); | ||||
|     HAL_NVIC_EnableIRQ(UART4_IRQn); | ||||
|   /* USER CODE BEGIN UART4_MspInit 1 */ | ||||
|  | ||||
|   /* USER CODE END UART4_MspInit 1 */ | ||||
|   } | ||||
|   else if(uartHandle->Instance==UART5) | ||||
|   { | ||||
|   /* USER CODE BEGIN UART5_MspInit 0 */ | ||||
|  | ||||
|   /* USER CODE END UART5_MspInit 0 */ | ||||
|     /* UART5 clock enable */ | ||||
|     __HAL_RCC_UART5_CLK_ENABLE(); | ||||
|  | ||||
|     __HAL_RCC_GPIOC_CLK_ENABLE(); | ||||
|     __HAL_RCC_GPIOD_CLK_ENABLE(); | ||||
|     /**UART5 GPIO Configuration | ||||
|     PC12     ------> UART5_TX | ||||
|     PD2     ------> UART5_RX | ||||
|     */ | ||||
|     GPIO_InitStruct.Pin = MBus_TX_Pin; | ||||
|     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; | ||||
|     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; | ||||
|     HAL_GPIO_Init(MBus_TX_GPIO_Port, &GPIO_InitStruct); | ||||
|  | ||||
|     GPIO_InitStruct.Pin = MBus_RX_Pin; | ||||
|     GPIO_InitStruct.Mode = GPIO_MODE_INPUT; | ||||
|     GPIO_InitStruct.Pull = GPIO_NOPULL; | ||||
|     HAL_GPIO_Init(MBus_RX_GPIO_Port, &GPIO_InitStruct); | ||||
|  | ||||
|     /* UART5 interrupt Init */ | ||||
|     HAL_NVIC_SetPriority(UART5_IRQn, 0, 0); | ||||
|     HAL_NVIC_EnableIRQ(UART5_IRQn); | ||||
|   /* USER CODE BEGIN UART5_MspInit 1 */ | ||||
|  | ||||
|   /* USER CODE END UART5_MspInit 1 */ | ||||
|   } | ||||
| } | ||||
|  | ||||
| void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle) | ||||
| { | ||||
|  | ||||
|   if(uartHandle->Instance==UART4) | ||||
|   { | ||||
|   /* USER CODE BEGIN UART4_MspDeInit 0 */ | ||||
|  | ||||
|   /* USER CODE END UART4_MspDeInit 0 */ | ||||
|     /* Peripheral clock disable */ | ||||
|     __HAL_RCC_UART4_CLK_DISABLE(); | ||||
|  | ||||
|     /**UART4 GPIO Configuration | ||||
|     PC10     ------> UART4_TX | ||||
|     PC11     ------> UART4_RX | ||||
|     */ | ||||
|     HAL_GPIO_DeInit(GPIOC, Debug_TX_Pin|Debug_RX_Pin); | ||||
|  | ||||
|     /* UART4 interrupt Deinit */ | ||||
|     HAL_NVIC_DisableIRQ(UART4_IRQn); | ||||
|   /* USER CODE BEGIN UART4_MspDeInit 1 */ | ||||
|  | ||||
|   /* USER CODE END UART4_MspDeInit 1 */ | ||||
|   } | ||||
|   else if(uartHandle->Instance==UART5) | ||||
|   { | ||||
|   /* USER CODE BEGIN UART5_MspDeInit 0 */ | ||||
|  | ||||
|   /* USER CODE END UART5_MspDeInit 0 */ | ||||
|     /* Peripheral clock disable */ | ||||
|     __HAL_RCC_UART5_CLK_DISABLE(); | ||||
|  | ||||
|     /**UART5 GPIO Configuration | ||||
|     PC12     ------> UART5_TX | ||||
|     PD2     ------> UART5_RX | ||||
|     */ | ||||
|     HAL_GPIO_DeInit(MBus_TX_GPIO_Port, MBus_TX_Pin); | ||||
|  | ||||
|     HAL_GPIO_DeInit(MBus_RX_GPIO_Port, MBus_RX_Pin); | ||||
|  | ||||
|     /* UART5 interrupt Deinit */ | ||||
|     HAL_NVIC_DisableIRQ(UART5_IRQn); | ||||
|   /* USER CODE BEGIN UART5_MspDeInit 1 */ | ||||
|  | ||||
|   /* USER CODE END UART5_MspDeInit 1 */ | ||||
|   } | ||||
| } | ||||
|  | ||||
| /* USER CODE BEGIN 1 */ | ||||
|  | ||||
| /* USER CODE END 1 */ | ||||
|  | ||||
| /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ | ||||
							
								
								
									
										214
									
								
								Makefile-20201227-01
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										214
									
								
								Makefile-20201227-01
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,214 @@ | ||||
| # Processed by ../tools/insertMyCode.sh | ||||
| ########################################################################################################################## | ||||
| # File automatically-generated by tool: [projectgenerator] version: [3.10.0-B14] date: [Thu Nov 19 18:53:40 CET 2020] | ||||
| ########################################################################################################################## | ||||
|  | ||||
| # ------------------------------------------------ | ||||
| # Generic Makefile (based on gcc) | ||||
| # | ||||
| # ChangeLog : | ||||
| #	2017-02-10 - Several enhancements + project update mode | ||||
| #   2015-07-22 - first version | ||||
| # ------------------------------------------------ | ||||
|  | ||||
| ###################################### | ||||
| # target | ||||
| ###################################### | ||||
| TARGET = cube | ||||
|  | ||||
|  | ||||
| ###################################### | ||||
| # building variables | ||||
| ###################################### | ||||
| # debug build? | ||||
| DEBUG = 1 | ||||
| # optimization | ||||
| OPT = -Og | ||||
|  | ||||
|  | ||||
| ####################################### | ||||
| # paths | ||||
| ####################################### | ||||
| # Build path | ||||
| BUILD_DIR = build | ||||
|  | ||||
| ###################################### | ||||
| # source | ||||
| ###################################### | ||||
| # C sources | ||||
| C_SOURCES =  \ | ||||
| User/Src/regularCmds.c User/Src/adminCmds.c User/Src/configCmds.c User/Src/config.c User/Src/oled.c User/Src/cmdHandler.c User/Src/eeprom.c User/Src/frontend.c User/Src/logger.c User/Src/loopCtrl.c User/Src/main2.c User/Src/mbusComm.c User/Src/mbusParserExt.c User/Src/mqttComm.c User/Src/ports.c User/Src/ringbuffer.c User/Src/show.c User/Src/utils.c User/Src/wizHelper.c hottislib/PontCoopScheduler.c  \ | ||||
| libmbus/mbus/mbus-protocol.c \ | ||||
| Core/Src/main.c \ | ||||
| Core/Src/gpio.c \ | ||||
| Core/Src/adc.c \ | ||||
| Core/Src/spi.c \ | ||||
| Core/Src/usart.c \ | ||||
| Core/Src/stm32f1xx_it.c \ | ||||
| Core/Src/stm32f1xx_hal_msp.c \ | ||||
| Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c \ | ||||
| Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.c \ | ||||
| Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc_ex.c \ | ||||
| Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c \ | ||||
| Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c \ | ||||
| Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c \ | ||||
| Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c \ | ||||
| Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c \ | ||||
| Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c \ | ||||
| Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c \ | ||||
| Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c \ | ||||
| Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c \ | ||||
| Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c \ | ||||
| Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_spi.c \ | ||||
| Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c \ | ||||
| Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c \ | ||||
| Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c \ | ||||
| Core/Src/system_stm32f1xx.c   | ||||
|  | ||||
| # ASM sources | ||||
| ASM_SOURCES =  \ | ||||
| startup_stm32f103xe.s | ||||
|  | ||||
|  | ||||
| ####################################### | ||||
| # binaries | ||||
| ####################################### | ||||
| PREFIX = arm-none-eabi- | ||||
| # The gcc compiler bin path can be either defined in make command via GCC_PATH variable (> make GCC_PATH=xxx) | ||||
| # either it can be added to the PATH environment variable. | ||||
| ifdef GCC_PATH | ||||
| CC = $(GCC_PATH)/$(PREFIX)gcc | ||||
| AS = $(GCC_PATH)/$(PREFIX)gcc -x assembler-with-cpp | ||||
| CP = $(GCC_PATH)/$(PREFIX)objcopy | ||||
| SZ = $(GCC_PATH)/$(PREFIX)size | ||||
| else | ||||
| CC = $(PREFIX)gcc | ||||
| AS = $(PREFIX)gcc -x assembler-with-cpp | ||||
| CP = $(PREFIX)objcopy | ||||
| SZ = $(PREFIX)size | ||||
| endif | ||||
| HEX = $(CP) -O ihex | ||||
| BIN = $(CP) -O binary -S | ||||
|   | ||||
| ####################################### | ||||
| # CFLAGS | ||||
| ####################################### | ||||
| # cpu | ||||
| CPU = -mcpu=cortex-m3 | ||||
|  | ||||
| # fpu | ||||
| # NONE for Cortex-M0/M0+/M3 | ||||
|  | ||||
| # float-abi | ||||
|  | ||||
|  | ||||
| # mcu | ||||
| MCU = $(CPU) -mthumb $(FPU) $(FLOAT-ABI) | ||||
|  | ||||
| # macros for gcc | ||||
| # AS defines | ||||
| AS_DEFS =  | ||||
|  | ||||
| # C defines | ||||
| C_DEFS =  \ | ||||
| -DUSE_HAL_DRIVER \ | ||||
| -DSTM32F103xE | ||||
|  | ||||
|  | ||||
| # AS includes | ||||
| AS_INCLUDES =  | ||||
|  | ||||
| # C includes | ||||
| C_INCLUDES =  \ | ||||
| -Ihottislib \ | ||||
| -Ipubsubc/src \ | ||||
| -Ilibmbus \ | ||||
| -IUser/Inc \ | ||||
| -IioLibrary_Driver/Internet/DHCP \ | ||||
| -IioLibrary_Driver/Internet/DNS \ | ||||
| -IioLibrary_Driver/Ethernet \ | ||||
| -ICore/Inc \ | ||||
| -IDrivers/STM32F1xx_HAL_Driver/Inc \ | ||||
| -IDrivers/STM32F1xx_HAL_Driver/Inc/Legacy \ | ||||
| -IDrivers/CMSIS/Device/ST/STM32F1xx/Include \ | ||||
| -IDrivers/CMSIS/Include \ | ||||
| -IDrivers/CMSIS/Include | ||||
|  | ||||
|  | ||||
| # compile gcc flags | ||||
| ASFLAGS = $(MCU) $(AS_DEFS) $(AS_INCLUDES) $(OPT) -Wall -Werror -fdata-sections -ffunction-sections | ||||
|  | ||||
| CFLAGS = $(MCU) $(C_DEFS) $(C_INCLUDES) $(OPT) -Wall -Werror -fdata-sections -ffunction-sections | ||||
|  | ||||
| ifeq ($(DEBUG), 1) | ||||
| CFLAGS += -g -gdwarf-2 | ||||
| endif | ||||
|  | ||||
|  | ||||
| # Generate dependency information | ||||
| CFLAGS += -MMD -MP -MF"$(@:%.o=%.d)" | ||||
|  | ||||
|  | ||||
| ####################################### | ||||
| # LDFLAGS | ||||
| ####################################### | ||||
| # link script | ||||
| LDSCRIPT = STM32F103VCTx_FLASH.ld | ||||
|  | ||||
| # libraries | ||||
| LIBS = -lc -lm -lnosys  | ||||
| LIBDIR =  | ||||
| LDFLAGS = $(MCU) -specs=nano.specs -u _printf_float -T$(LDSCRIPT) $(LIBDIR) $(LIBS) -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref -Wl,--gc-sections | ||||
|  | ||||
| # default action: build all | ||||
| all: $(BUILD_DIR)/$(TARGET).elf $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).bin | ||||
|  | ||||
|  | ||||
| ####################################### | ||||
| # build the application | ||||
| ####################################### | ||||
| # list of objects | ||||
| OBJECTS = $(addprefix $(BUILD_DIR)/,$(notdir $(C_SOURCES:.c=.o))) | ||||
| vpath %.c $(sort $(dir $(C_SOURCES))) | ||||
| OBJECTS += $(addprefix $(BUILD_DIR)/,w5500.a pubsubc.a) | ||||
| # list of ASM program objects | ||||
| OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(ASM_SOURCES:.s=.o))) | ||||
| vpath %.s $(sort $(dir $(ASM_SOURCES))) | ||||
|  | ||||
| $(BUILD_DIR)/w5500.a: | ||||
| 	(cd ioLibrary_Driver && $(MAKE) && cp w5500.a ../$(BUILD_DIR) && cd ..) | ||||
|  | ||||
| $(BUILD_DIR)/pubsubc.a: | ||||
| 	(cd pubsubc && $(MAKE) && cp pubsubc.a ../$(BUILD_DIR) && cd ..) | ||||
|  | ||||
| $(BUILD_DIR)/%.o: %.c Makefile | $(BUILD_DIR)  | ||||
| 	$(CC) -c $(CFLAGS) -Wa,-a,-ad,-alms=$(BUILD_DIR)/$(notdir $(<:.c=.lst)) $< -o $@ | ||||
|  | ||||
| $(BUILD_DIR)/%.o: %.s Makefile | $(BUILD_DIR) | ||||
| 	$(AS) -c $(CFLAGS) $< -o $@ | ||||
|  | ||||
| $(BUILD_DIR)/$(TARGET).elf: $(OBJECTS) Makefile | ||||
| 	$(CC) $(OBJECTS) $(LDFLAGS) -o $@ | ||||
| 	$(SZ) $@ | ||||
|  | ||||
| $(BUILD_DIR)/%.hex: $(BUILD_DIR)/%.elf | $(BUILD_DIR) | ||||
| 	$(HEX) $< $@ | ||||
| 	 | ||||
| $(BUILD_DIR)/%.bin: $(BUILD_DIR)/%.elf | $(BUILD_DIR) | ||||
| 	$(BIN) $< $@	 | ||||
| 	 | ||||
| $(BUILD_DIR): | ||||
| 	mkdir $@		 | ||||
|  | ||||
| ####################################### | ||||
| # clean up | ||||
| ####################################### | ||||
| clean: | ||||
| 	-rm -fR $(BUILD_DIR) | ||||
|    | ||||
| ####################################### | ||||
| # dependencies | ||||
| ####################################### | ||||
| -include $(wildcard $(BUILD_DIR)/*.d) | ||||
|  | ||||
| # *** EOF *** | ||||
| @@ -1,5 +1,5 @@ | ||||
| [PreviousLibFiles] | ||||
| LibFiles=Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_adc.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_adc_ex.h;Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_spi.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_adc.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_adc_ex.h;Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h;Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h;Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h;Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h;Drivers/CMSIS/Device/ST/STM32F1xx/Source/Templates/system_stm32f1xx.c;Drivers/CMSIS/Include/core_cm3.h;Drivers/CMSIS/Include/core_sc000.h;Drivers/CMSIS/Include/core_cm0plus.h;Drivers/CMSIS/Include/cmsis_gcc.h;Drivers/CMSIS/Include/core_cm7.h;Drivers/CMSIS/Include/core_armv8mbl.h;Drivers/CMSIS/Include/core_armv8mml.h;Drivers/CMSIS/Include/mpu_armv8.h;Drivers/CMSIS/Include/mpu_armv7.h;Drivers/CMSIS/Include/core_cm4.h;Drivers/CMSIS/Include/core_cm23.h;Drivers/CMSIS/Include/core_cm0.h;Drivers/CMSIS/Include/cmsis_armcc.h;Drivers/CMSIS/Include/cmsis_armclang.h;Drivers/CMSIS/Include/core_cm33.h;Drivers/CMSIS/Include/core_cm1.h;Drivers/CMSIS/Include/cmsis_iccarm.h;Drivers/CMSIS/Include/cmsis_compiler.h;Drivers/CMSIS/Include/cmsis_version.h;Drivers/CMSIS/Include/tz_context.h;Drivers/CMSIS/Include/core_sc300.h; | ||||
| LibFiles=Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_adc.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_adc_ex.h;Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_iwdg.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_iwdg.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_spi.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_adc.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_adc_ex.h;Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_iwdg.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h;Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h;Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xe.h;Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h;Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h;Drivers/CMSIS/Device/ST/STM32F1xx/Source/Templates/system_stm32f1xx.c;Drivers/CMSIS/Include/cmsis_armclang.h;Drivers/CMSIS/Include/core_armv8mml.h;Drivers/CMSIS/Include/core_cm0plus.h;Drivers/CMSIS/Include/tz_context.h;Drivers/CMSIS/Include/core_cm0.h;Drivers/CMSIS/Include/cmsis_compiler.h;Drivers/CMSIS/Include/core_cm3.h;Drivers/CMSIS/Include/core_sc000.h;Drivers/CMSIS/Include/core_cm23.h;Drivers/CMSIS/Include/core_cm1.h;Drivers/CMSIS/Include/mpu_armv7.h;Drivers/CMSIS/Include/core_cm33.h;Drivers/CMSIS/Include/cmsis_gcc.h;Drivers/CMSIS/Include/core_armv8mbl.h;Drivers/CMSIS/Include/cmsis_armcc.h;Drivers/CMSIS/Include/core_sc300.h;Drivers/CMSIS/Include/cmsis_iccarm.h;Drivers/CMSIS/Include/core_cm4.h;Drivers/CMSIS/Include/mpu_armv8.h;Drivers/CMSIS/Include/cmsis_version.h;Drivers/CMSIS/Include/core_cm7.h; | ||||
|  | ||||
| [PreviousUsedIarFiles] | ||||
| SourceFiles=../Core/Src/main.c;../Core/Src/gpio.c;../Core/Src/adc.c;../Core/Src/spi.c;../Core/Src/usart.c;../Core/Src/stm32f1xx_it.c;../Core/Src/stm32f1xx_hal_msp.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc_ex.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_spi.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c;../Core/Src/system_stm32f1xx.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc_ex.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_spi.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c;../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c;../Core/Src/system_stm32f1xx.c;../Drivers/CMSIS/Device/ST/STM32F1xx/Source/Templates/system_stm32f1xx.c;; | ||||
| @@ -7,31 +7,33 @@ HeaderPath=../Drivers/STM32F1xx_HAL_Driver/Inc;../Drivers/STM32F1xx_HAL_Driver/I | ||||
| CDefines=USE_HAL_DRIVER;STM32F103xE;USE_HAL_DRIVER;USE_HAL_DRIVER; | ||||
|  | ||||
| [PreviousUsedMakefileFiles] | ||||
| SourceFiles=Core/Src/main.c;Core/Src/gpio.c;Core/Src/adc.c;Core/Src/spi.c;Core/Src/usart.c;Core/Src/stm32f1xx_it.c;Core/Src/stm32f1xx_hal_msp.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_spi.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c;Core/Src/system_stm32f1xx.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_spi.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c;Core/Src/system_stm32f1xx.c;Drivers/CMSIS/Device/ST/STM32F1xx/Source/Templates/system_stm32f1xx.c;; | ||||
| SourceFiles=Core/Src/main.c;Core/Src/gpio.c;Core/Src/adc.c;Core/Src/iwdg.c;Core/Src/spi.c;Core/Src/usart.c;Core/Src/stm32f1xx_it.c;Core/Src/stm32f1xx_hal_msp.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_iwdg.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_spi.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c;Core/Src/system_stm32f1xx.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_iwdg.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_spi.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c;Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c;Core/Src/system_stm32f1xx.c;Drivers/CMSIS/Device/ST/STM32F1xx/Source/Templates/system_stm32f1xx.c;; | ||||
| HeaderPath=Drivers/STM32F1xx_HAL_Driver/Inc;Drivers/STM32F1xx_HAL_Driver/Inc/Legacy;Drivers/CMSIS/Device/ST/STM32F1xx/Include;Drivers/CMSIS/Include;Core/Inc; | ||||
| CDefines=USE_HAL_DRIVER;STM32F103xE;USE_HAL_DRIVER;USE_HAL_DRIVER; | ||||
|  | ||||
| [PreviousGenFiles] | ||||
| AdvancedFolderStructure=true | ||||
| HeaderFileListSize=7 | ||||
| HeaderFileListSize=8 | ||||
| HeaderFiles#0=/home/wn/Workspaces/mbusgateway3variant/cube/Core/Inc/gpio.h | ||||
| HeaderFiles#1=/home/wn/Workspaces/mbusgateway3variant/cube/Core/Inc/adc.h | ||||
| HeaderFiles#2=/home/wn/Workspaces/mbusgateway3variant/cube/Core/Inc/spi.h | ||||
| HeaderFiles#3=/home/wn/Workspaces/mbusgateway3variant/cube/Core/Inc/usart.h | ||||
| HeaderFiles#4=/home/wn/Workspaces/mbusgateway3variant/cube/Core/Inc/stm32f1xx_it.h | ||||
| HeaderFiles#5=/home/wn/Workspaces/mbusgateway3variant/cube/Core/Inc/stm32f1xx_hal_conf.h | ||||
| HeaderFiles#6=/home/wn/Workspaces/mbusgateway3variant/cube/Core/Inc/main.h | ||||
| HeaderFiles#2=/home/wn/Workspaces/mbusgateway3variant/cube/Core/Inc/iwdg.h | ||||
| HeaderFiles#3=/home/wn/Workspaces/mbusgateway3variant/cube/Core/Inc/spi.h | ||||
| HeaderFiles#4=/home/wn/Workspaces/mbusgateway3variant/cube/Core/Inc/usart.h | ||||
| HeaderFiles#5=/home/wn/Workspaces/mbusgateway3variant/cube/Core/Inc/stm32f1xx_it.h | ||||
| HeaderFiles#6=/home/wn/Workspaces/mbusgateway3variant/cube/Core/Inc/stm32f1xx_hal_conf.h | ||||
| HeaderFiles#7=/home/wn/Workspaces/mbusgateway3variant/cube/Core/Inc/main.h | ||||
| HeaderFolderListSize=1 | ||||
| HeaderPath#0=/home/wn/Workspaces/mbusgateway3variant/cube/Core/Inc | ||||
| HeaderFiles=; | ||||
| SourceFileListSize=7 | ||||
| SourceFileListSize=8 | ||||
| SourceFiles#0=/home/wn/Workspaces/mbusgateway3variant/cube/Core/Src/gpio.c | ||||
| SourceFiles#1=/home/wn/Workspaces/mbusgateway3variant/cube/Core/Src/adc.c | ||||
| SourceFiles#2=/home/wn/Workspaces/mbusgateway3variant/cube/Core/Src/spi.c | ||||
| SourceFiles#3=/home/wn/Workspaces/mbusgateway3variant/cube/Core/Src/usart.c | ||||
| SourceFiles#4=/home/wn/Workspaces/mbusgateway3variant/cube/Core/Src/stm32f1xx_it.c | ||||
| SourceFiles#5=/home/wn/Workspaces/mbusgateway3variant/cube/Core/Src/stm32f1xx_hal_msp.c | ||||
| SourceFiles#6=/home/wn/Workspaces/mbusgateway3variant/cube/Core/Src/main.c | ||||
| SourceFiles#2=/home/wn/Workspaces/mbusgateway3variant/cube/Core/Src/iwdg.c | ||||
| SourceFiles#3=/home/wn/Workspaces/mbusgateway3variant/cube/Core/Src/spi.c | ||||
| SourceFiles#4=/home/wn/Workspaces/mbusgateway3variant/cube/Core/Src/usart.c | ||||
| SourceFiles#5=/home/wn/Workspaces/mbusgateway3variant/cube/Core/Src/stm32f1xx_it.c | ||||
| SourceFiles#6=/home/wn/Workspaces/mbusgateway3variant/cube/Core/Src/stm32f1xx_hal_msp.c | ||||
| SourceFiles#7=/home/wn/Workspaces/mbusgateway3variant/cube/Core/Src/main.c | ||||
| SourceFolderListSize=1 | ||||
| SourcePath#0=/home/wn/Workspaces/mbusgateway3variant/cube/Core/Src | ||||
| SourceFiles=; | ||||
|   | ||||
							
								
								
									
										58
									
								
								cube/Core/Inc/iwdg.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								cube/Core/Inc/iwdg.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,58 @@ | ||||
| /** | ||||
|   ****************************************************************************** | ||||
|   * File Name          : IWDG.h | ||||
|   * Description        : This file provides code for the configuration | ||||
|   *                      of the IWDG instances. | ||||
|   ****************************************************************************** | ||||
|   * @attention | ||||
|   * | ||||
|   * <h2><center>© Copyright (c) 2020 STMicroelectronics. | ||||
|   * All rights reserved.</center></h2> | ||||
|   * | ||||
|   * This software component is licensed by ST under BSD 3-Clause license, | ||||
|   * the "License"; You may not use this file except in compliance with the | ||||
|   * License. You may obtain a copy of the License at: | ||||
|   *                        opensource.org/licenses/BSD-3-Clause | ||||
|   * | ||||
|   ****************************************************************************** | ||||
|   */ | ||||
| /* Define to prevent recursive inclusion -------------------------------------*/ | ||||
| #ifndef __iwdg_H | ||||
| #define __iwdg_H | ||||
| #ifdef __cplusplus | ||||
|  extern "C" { | ||||
| #endif | ||||
|  | ||||
| /* Includes ------------------------------------------------------------------*/ | ||||
| #include "main.h" | ||||
|  | ||||
| /* USER CODE BEGIN Includes */ | ||||
|  | ||||
| /* USER CODE END Includes */ | ||||
|  | ||||
| extern IWDG_HandleTypeDef hiwdg; | ||||
|  | ||||
| /* USER CODE BEGIN Private defines */ | ||||
|  | ||||
| /* USER CODE END Private defines */ | ||||
|  | ||||
| void MX_IWDG_Init(void); | ||||
|  | ||||
| /* USER CODE BEGIN Prototypes */ | ||||
|  | ||||
| /* USER CODE END Prototypes */ | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| } | ||||
| #endif | ||||
| #endif /*__ iwdg_H */ | ||||
|  | ||||
| /** | ||||
|   * @} | ||||
|   */ | ||||
|  | ||||
| /** | ||||
|   * @} | ||||
|   */ | ||||
|  | ||||
| /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ | ||||
| @@ -48,7 +48,7 @@ | ||||
| /*#define HAL_I2C_MODULE_ENABLED   */ | ||||
| /*#define HAL_I2S_MODULE_ENABLED   */ | ||||
| /*#define HAL_IRDA_MODULE_ENABLED   */ | ||||
| /*#define HAL_IWDG_MODULE_ENABLED   */ | ||||
| #define HAL_IWDG_MODULE_ENABLED | ||||
| /*#define HAL_NOR_MODULE_ENABLED   */ | ||||
| /*#define HAL_NAND_MODULE_ENABLED   */ | ||||
| /*#define HAL_PCCARD_MODULE_ENABLED   */ | ||||
|   | ||||
							
								
								
									
										47
									
								
								cube/Core/Src/iwdg.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								cube/Core/Src/iwdg.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,47 @@ | ||||
| /** | ||||
|   ****************************************************************************** | ||||
|   * File Name          : IWDG.c | ||||
|   * Description        : This file provides code for the configuration | ||||
|   *                      of the IWDG instances. | ||||
|   ****************************************************************************** | ||||
|   * @attention | ||||
|   * | ||||
|   * <h2><center>© Copyright (c) 2020 STMicroelectronics. | ||||
|   * All rights reserved.</center></h2> | ||||
|   * | ||||
|   * This software component is licensed by ST under BSD 3-Clause license, | ||||
|   * the "License"; You may not use this file except in compliance with the | ||||
|   * License. You may obtain a copy of the License at: | ||||
|   *                        opensource.org/licenses/BSD-3-Clause | ||||
|   * | ||||
|   ****************************************************************************** | ||||
|   */ | ||||
|  | ||||
| /* Includes ------------------------------------------------------------------*/ | ||||
| #include "iwdg.h" | ||||
|  | ||||
| /* USER CODE BEGIN 0 */ | ||||
|  | ||||
| /* USER CODE END 0 */ | ||||
|  | ||||
| IWDG_HandleTypeDef hiwdg; | ||||
|  | ||||
| /* IWDG init function */ | ||||
| void MX_IWDG_Init(void) | ||||
| { | ||||
|  | ||||
|   hiwdg.Instance = IWDG; | ||||
|   hiwdg.Init.Prescaler = IWDG_PRESCALER_8; | ||||
|   hiwdg.Init.Reload = 4095; | ||||
|   if (HAL_IWDG_Init(&hiwdg) != HAL_OK) | ||||
|   { | ||||
|     Error_Handler(); | ||||
|   } | ||||
|  | ||||
| } | ||||
|  | ||||
| /* USER CODE BEGIN 1 */ | ||||
|  | ||||
| /* USER CODE END 1 */ | ||||
|  | ||||
| /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ | ||||
| @@ -21,6 +21,7 @@ | ||||
| /* Includes ------------------------------------------------------------------*/ | ||||
| #include "main.h" | ||||
| #include "adc.h" | ||||
| #include "iwdg.h" | ||||
| #include "spi.h" | ||||
| #include "usart.h" | ||||
| #include "gpio.h" | ||||
| @@ -99,6 +100,7 @@ int main(void) | ||||
|   MX_UART4_Init(); | ||||
|   MX_UART5_Init(); | ||||
|   MX_SPI1_Init(); | ||||
|   MX_IWDG_Init(); | ||||
|   /* USER CODE BEGIN 2 */ | ||||
|   my_setup_2(); | ||||
|  | ||||
| @@ -131,10 +133,11 @@ void SystemClock_Config(void) | ||||
|   /** Initializes the RCC Oscillators according to the specified parameters | ||||
|   * in the RCC_OscInitTypeDef structure. | ||||
|   */ | ||||
|   RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; | ||||
|   RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI|RCC_OSCILLATORTYPE_HSE; | ||||
|   RCC_OscInitStruct.HSEState = RCC_HSE_ON; | ||||
|   RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1; | ||||
|   RCC_OscInitStruct.HSIState = RCC_HSI_ON; | ||||
|   RCC_OscInitStruct.LSIState = RCC_LSI_ON; | ||||
|   RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; | ||||
|   RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; | ||||
|   RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9; | ||||
|   | ||||
| @@ -20,6 +20,7 @@ | ||||
| /* Includes ------------------------------------------------------------------*/ | ||||
| #include "main.h" | ||||
| #include "adc.h" | ||||
| #include "iwdg.h" | ||||
| #include "spi.h" | ||||
| #include "usart.h" | ||||
| #include "gpio.h" | ||||
| @@ -94,6 +95,7 @@ int main(void) | ||||
|   MX_UART4_Init(); | ||||
|   MX_UART5_Init(); | ||||
|   MX_SPI1_Init(); | ||||
|   MX_IWDG_Init(); | ||||
|   /* USER CODE BEGIN 2 */ | ||||
|  | ||||
|   /* USER CODE END 2 */ | ||||
| @@ -122,10 +124,11 @@ void SystemClock_Config(void) | ||||
|   /** Initializes the RCC Oscillators according to the specified parameters | ||||
|   * in the RCC_OscInitTypeDef structure. | ||||
|   */ | ||||
|   RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; | ||||
|   RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI|RCC_OSCILLATORTYPE_HSE; | ||||
|   RCC_OscInitStruct.HSEState = RCC_HSE_ON; | ||||
|   RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1; | ||||
|   RCC_OscInitStruct.HSIState = RCC_HSI_ON; | ||||
|   RCC_OscInitStruct.LSIState = RCC_LSI_ON; | ||||
|   RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; | ||||
|   RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; | ||||
|   RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9; | ||||
|   | ||||
| @@ -261,9 +261,6 @@ void UART4_IRQHandler(void) | ||||
|   /* USER CODE END UART4_IRQn 1 */ | ||||
| } | ||||
|  | ||||
|  | ||||
| void mbusCommISR(); | ||||
|  | ||||
| /** | ||||
|   * @brief This function handles UART5 global interrupt. | ||||
|   */ | ||||
| @@ -274,9 +271,9 @@ void UART5_IRQHandler(void) | ||||
|   /* USER CODE END UART5_IRQn 0 */ | ||||
|   // HAL_UART_IRQHandler(&huart5); | ||||
|   /* USER CODE BEGIN UART5_IRQn 1 */ | ||||
|  | ||||
|   mbusCommISR(); | ||||
|  | ||||
|  | ||||
|   /* USER CODE END UART5_IRQn 1 */ | ||||
| } | ||||
|  | ||||
|   | ||||
							
								
								
									
										226
									
								
								cube/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_iwdg.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										226
									
								
								cube/Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_iwdg.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,226 @@ | ||||
| /** | ||||
|   ****************************************************************************** | ||||
|   * @file    stm32f1xx_hal_iwdg.h | ||||
|   * @author  MCD Application Team | ||||
|   * @brief   Header file of IWDG HAL module. | ||||
|   ****************************************************************************** | ||||
|   * @attention | ||||
|   * | ||||
|   * <h2><center>© Copyright (c) 2016 STMicroelectronics. | ||||
|   * All rights reserved.</center></h2> | ||||
|   * | ||||
|   * This software component is licensed by ST under BSD 3-Clause license, | ||||
|   * the "License"; You may not use this file except in compliance with the | ||||
|   * License. You may obtain a copy of the License at: | ||||
|   *                        opensource.org/licenses/BSD-3-Clause | ||||
|   * | ||||
|   ****************************************************************************** | ||||
|   */ | ||||
|  | ||||
| /* Define to prevent recursive inclusion -------------------------------------*/ | ||||
| #ifndef STM32F1xx_HAL_IWDG_H | ||||
| #define STM32F1xx_HAL_IWDG_H | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| extern "C" { | ||||
| #endif | ||||
|  | ||||
| /* Includes ------------------------------------------------------------------*/ | ||||
| #include "stm32f1xx_hal_def.h" | ||||
|  | ||||
| /** @addtogroup STM32F1xx_HAL_Driver | ||||
|   * @{ | ||||
|   */ | ||||
|  | ||||
| /** @defgroup IWDG IWDG | ||||
|   * @{ | ||||
|   */ | ||||
|  | ||||
| /* Exported types ------------------------------------------------------------*/ | ||||
| /** @defgroup IWDG_Exported_Types IWDG Exported Types | ||||
|   * @{ | ||||
|   */ | ||||
|  | ||||
| /** | ||||
|   * @brief  IWDG Init structure definition | ||||
|   */ | ||||
| typedef struct | ||||
| { | ||||
|   uint32_t Prescaler;  /*!< Select the prescaler of the IWDG. | ||||
|                             This parameter can be a value of @ref IWDG_Prescaler */ | ||||
|  | ||||
|   uint32_t Reload;     /*!< Specifies the IWDG down-counter reload value. | ||||
|                             This parameter must be a number between Min_Data = 0 and Max_Data = 0x0FFF */ | ||||
|  | ||||
| } IWDG_InitTypeDef; | ||||
|  | ||||
| /** | ||||
|   * @brief  IWDG Handle Structure definition | ||||
|   */ | ||||
| typedef struct | ||||
| { | ||||
|   IWDG_TypeDef                 *Instance;  /*!< Register base address    */ | ||||
|  | ||||
|   IWDG_InitTypeDef             Init;       /*!< IWDG required parameters */ | ||||
| } IWDG_HandleTypeDef; | ||||
|  | ||||
|  | ||||
| /** | ||||
|   * @} | ||||
|   */ | ||||
|  | ||||
| /* Exported constants --------------------------------------------------------*/ | ||||
| /** @defgroup IWDG_Exported_Constants IWDG Exported Constants | ||||
|   * @{ | ||||
|   */ | ||||
|  | ||||
| /** @defgroup IWDG_Prescaler IWDG Prescaler | ||||
|   * @{ | ||||
|   */ | ||||
| #define IWDG_PRESCALER_4                0x00000000U                                     /*!< IWDG prescaler set to 4   */ | ||||
| #define IWDG_PRESCALER_8                IWDG_PR_PR_0                                    /*!< IWDG prescaler set to 8   */ | ||||
| #define IWDG_PRESCALER_16               IWDG_PR_PR_1                                    /*!< IWDG prescaler set to 16  */ | ||||
| #define IWDG_PRESCALER_32               (IWDG_PR_PR_1 | IWDG_PR_PR_0)                   /*!< IWDG prescaler set to 32  */ | ||||
| #define IWDG_PRESCALER_64               IWDG_PR_PR_2                                    /*!< IWDG prescaler set to 64  */ | ||||
| #define IWDG_PRESCALER_128              (IWDG_PR_PR_2 | IWDG_PR_PR_0)                   /*!< IWDG prescaler set to 128 */ | ||||
| #define IWDG_PRESCALER_256              (IWDG_PR_PR_2 | IWDG_PR_PR_1)                   /*!< IWDG prescaler set to 256 */ | ||||
|  | ||||
| /** | ||||
|   * @} | ||||
|   */ | ||||
|  | ||||
|  | ||||
|  | ||||
| /** | ||||
|   * @} | ||||
|   */ | ||||
|  | ||||
| /* Exported macros -----------------------------------------------------------*/ | ||||
| /** @defgroup IWDG_Exported_Macros IWDG Exported Macros | ||||
|   * @{ | ||||
|   */ | ||||
|  | ||||
| /** | ||||
|   * @brief  Enable the IWDG peripheral. | ||||
|   * @param  __HANDLE__  IWDG handle | ||||
|   * @retval None | ||||
|   */ | ||||
| #define __HAL_IWDG_START(__HANDLE__)                WRITE_REG((__HANDLE__)->Instance->KR, IWDG_KEY_ENABLE) | ||||
|  | ||||
| /** | ||||
|   * @brief  Reload IWDG counter with value defined in the reload register | ||||
|   *         (write access to IWDG_PR and IWDG_RLR registers disabled). | ||||
|   * @param  __HANDLE__  IWDG handle | ||||
|   * @retval None | ||||
|   */ | ||||
| #define __HAL_IWDG_RELOAD_COUNTER(__HANDLE__)       WRITE_REG((__HANDLE__)->Instance->KR, IWDG_KEY_RELOAD) | ||||
|  | ||||
| /** | ||||
|   * @} | ||||
|   */ | ||||
|  | ||||
| /* Exported functions --------------------------------------------------------*/ | ||||
| /** @defgroup IWDG_Exported_Functions  IWDG Exported Functions | ||||
|   * @{ | ||||
|   */ | ||||
|  | ||||
| /** @defgroup IWDG_Exported_Functions_Group1 Initialization and Start functions | ||||
|   * @{ | ||||
|   */ | ||||
| /* Initialization/Start functions  ********************************************/ | ||||
| HAL_StatusTypeDef HAL_IWDG_Init(IWDG_HandleTypeDef *hiwdg); | ||||
| /** | ||||
|   * @} | ||||
|   */ | ||||
|  | ||||
| /** @defgroup IWDG_Exported_Functions_Group2 IO operation functions | ||||
|   * @{ | ||||
|   */ | ||||
| /* I/O operation functions ****************************************************/ | ||||
| HAL_StatusTypeDef HAL_IWDG_Refresh(IWDG_HandleTypeDef *hiwdg); | ||||
| /** | ||||
|   * @} | ||||
|   */ | ||||
|  | ||||
| /** | ||||
|   * @} | ||||
|   */ | ||||
|  | ||||
| /* Private constants ---------------------------------------------------------*/ | ||||
| /** @defgroup IWDG_Private_Constants IWDG Private Constants | ||||
|   * @{ | ||||
|   */ | ||||
|  | ||||
| /** | ||||
|   * @brief  IWDG Key Register BitMask | ||||
|   */ | ||||
| #define IWDG_KEY_RELOAD                 0x0000AAAAU  /*!< IWDG Reload Counter Enable   */ | ||||
| #define IWDG_KEY_ENABLE                 0x0000CCCCU  /*!< IWDG Peripheral Enable       */ | ||||
| #define IWDG_KEY_WRITE_ACCESS_ENABLE    0x00005555U  /*!< IWDG KR Write Access Enable  */ | ||||
| #define IWDG_KEY_WRITE_ACCESS_DISABLE   0x00000000U  /*!< IWDG KR Write Access Disable */ | ||||
|  | ||||
| /** | ||||
|   * @} | ||||
|   */ | ||||
|  | ||||
| /* Private macros ------------------------------------------------------------*/ | ||||
| /** @defgroup IWDG_Private_Macros IWDG Private Macros | ||||
|   * @{ | ||||
|   */ | ||||
|  | ||||
| /** | ||||
|   * @brief  Enable write access to IWDG_PR and IWDG_RLR registers. | ||||
|   * @param  __HANDLE__  IWDG handle | ||||
|   * @retval None | ||||
|   */ | ||||
| #define IWDG_ENABLE_WRITE_ACCESS(__HANDLE__)  WRITE_REG((__HANDLE__)->Instance->KR, IWDG_KEY_WRITE_ACCESS_ENABLE) | ||||
|  | ||||
| /** | ||||
|   * @brief  Disable write access to IWDG_PR and IWDG_RLR registers. | ||||
|   * @param  __HANDLE__  IWDG handle | ||||
|   * @retval None | ||||
|   */ | ||||
| #define IWDG_DISABLE_WRITE_ACCESS(__HANDLE__) WRITE_REG((__HANDLE__)->Instance->KR, IWDG_KEY_WRITE_ACCESS_DISABLE) | ||||
|  | ||||
| /** | ||||
|   * @brief  Check IWDG prescaler value. | ||||
|   * @param  __PRESCALER__  IWDG prescaler value | ||||
|   * @retval None | ||||
|   */ | ||||
| #define IS_IWDG_PRESCALER(__PRESCALER__)      (((__PRESCALER__) == IWDG_PRESCALER_4)  || \ | ||||
|                                                ((__PRESCALER__) == IWDG_PRESCALER_8)  || \ | ||||
|                                                ((__PRESCALER__) == IWDG_PRESCALER_16) || \ | ||||
|                                                ((__PRESCALER__) == IWDG_PRESCALER_32) || \ | ||||
|                                                ((__PRESCALER__) == IWDG_PRESCALER_64) || \ | ||||
|                                                ((__PRESCALER__) == IWDG_PRESCALER_128)|| \ | ||||
|                                                ((__PRESCALER__) == IWDG_PRESCALER_256)) | ||||
|  | ||||
| /** | ||||
|   * @brief  Check IWDG reload value. | ||||
|   * @param  __RELOAD__  IWDG reload value | ||||
|   * @retval None | ||||
|   */ | ||||
| #define IS_IWDG_RELOAD(__RELOAD__)            ((__RELOAD__) <= IWDG_RLR_RL) | ||||
|  | ||||
|  | ||||
|  | ||||
| /** | ||||
|   * @} | ||||
|   */ | ||||
|  | ||||
| /** | ||||
|   * @} | ||||
|   */ | ||||
|  | ||||
| /** | ||||
|   * @} | ||||
|   */ | ||||
|  | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| } | ||||
| #endif | ||||
|  | ||||
| #endif /* STM32F1xx_HAL_IWDG_H */ | ||||
|  | ||||
| /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ | ||||
							
								
								
									
										258
									
								
								cube/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_iwdg.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										258
									
								
								cube/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_iwdg.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,258 @@ | ||||
| /** | ||||
|   ****************************************************************************** | ||||
|   * @file    stm32f1xx_hal_iwdg.c | ||||
|   * @author  MCD Application Team | ||||
|   * @brief   IWDG HAL module driver. | ||||
|   *          This file provides firmware functions to manage the following | ||||
|   *          functionalities of the Independent Watchdog (IWDG) peripheral: | ||||
|   *           + Initialization and Start functions | ||||
|   *           + IO operation functions | ||||
|   * | ||||
|   @verbatim | ||||
|   ============================================================================== | ||||
|                     ##### IWDG Generic features ##### | ||||
|   ============================================================================== | ||||
|   [..] | ||||
|     (+) The IWDG can be started by either software or hardware (configurable | ||||
|         through option byte). | ||||
|  | ||||
|     (+) The IWDG is clocked by the Low-Speed Internal clock (LSI) and thus stays | ||||
|         active even if the main clock fails. | ||||
|  | ||||
|     (+) Once the IWDG is started, the LSI is forced ON and both cannot be | ||||
|         disabled. The counter starts counting down from the reset value (0xFFF). | ||||
|         When it reaches the end of count value (0x000) a reset signal is | ||||
|         generated (IWDG reset). | ||||
|  | ||||
|     (+) Whenever the key value 0x0000 AAAA is written in the IWDG_KR register, | ||||
|         the IWDG_RLR value is reloaded into the counter and the watchdog reset | ||||
|         is prevented. | ||||
|  | ||||
|     (+) The IWDG is implemented in the VDD voltage domain that is still functional | ||||
|         in STOP and STANDBY mode (IWDG reset can wake up the CPU from STANDBY). | ||||
|         IWDGRST flag in RCC_CSR register can be used to inform when an IWDG | ||||
|         reset occurs. | ||||
|  | ||||
|     (+) Debug mode: When the microcontroller enters debug mode (core halted), | ||||
|         the IWDG counter either continues to work normally or stops, depending | ||||
|         on DBG_IWDG_STOP configuration bit in DBG module, accessible through | ||||
|         __HAL_DBGMCU_FREEZE_IWDG() and __HAL_DBGMCU_UNFREEZE_IWDG() macros. | ||||
|  | ||||
|     [..] Min-max timeout value @32KHz (LSI): ~125us / ~32.7s | ||||
|          The IWDG timeout may vary due to LSI clock frequency dispersion. | ||||
|          STM32F1xx devices provide the capability to measure the LSI clock | ||||
|          frequency (LSI clock is internally connected to TIM5 CH4 input capture). | ||||
|          The measured value can be used to have an IWDG timeout with an | ||||
|          acceptable accuracy. | ||||
|  | ||||
|     [..] Default timeout value (necessary for IWDG_SR status register update): | ||||
|          Constant LSI_VALUE is defined based on the nominal LSI clock frequency. | ||||
|          This frequency being subject to variations as mentioned above, the | ||||
|          default timeout value (defined through constant HAL_IWDG_DEFAULT_TIMEOUT | ||||
|          below) may become too short or too long. | ||||
|          In such cases, this default timeout value can be tuned by redefining | ||||
|          the constant LSI_VALUE at user-application level (based, for instance, | ||||
|          on the measured LSI clock frequency as explained above). | ||||
|  | ||||
|                      ##### How to use this driver ##### | ||||
|   ============================================================================== | ||||
|   [..] | ||||
|     (#) Use IWDG using HAL_IWDG_Init() function to : | ||||
|       (++) Enable instance by writing Start keyword in IWDG_KEY register. LSI | ||||
|            clock is forced ON and IWDG counter starts counting down. | ||||
|       (++) Enable write access to configuration registers: | ||||
|           IWDG_PR and IWDG_RLR. | ||||
|       (++) Configure the IWDG prescaler and counter reload value. This reload | ||||
|            value will be loaded in the IWDG counter each time the watchdog is | ||||
|            reloaded, then the IWDG will start counting down from this value. | ||||
|       (++) Wait for status flags to be reset. | ||||
|  | ||||
|     (#) Then the application program must refresh the IWDG counter at regular | ||||
|         intervals during normal operation to prevent an MCU reset, using | ||||
|         HAL_IWDG_Refresh() function. | ||||
|  | ||||
|      *** IWDG HAL driver macros list *** | ||||
|      ==================================== | ||||
|      [..] | ||||
|        Below the list of most used macros in IWDG HAL driver: | ||||
|       (+) __HAL_IWDG_START: Enable the IWDG peripheral | ||||
|       (+) __HAL_IWDG_RELOAD_COUNTER: Reloads IWDG counter with value defined in | ||||
|           the reload register | ||||
|  | ||||
|   @endverbatim | ||||
|   ****************************************************************************** | ||||
|   * @attention | ||||
|   * | ||||
|   * <h2><center>© Copyright (c) 2016 STMicroelectronics. | ||||
|   * All rights reserved.</center></h2> | ||||
|   * | ||||
|   * This software component is licensed by ST under BSD 3-Clause license, | ||||
|   * the "License"; You may not use this file except in compliance with the | ||||
|   * License. You may obtain a copy of the License at: | ||||
|   *                        opensource.org/licenses/BSD-3-Clause | ||||
|   * | ||||
|   ****************************************************************************** | ||||
|   */ | ||||
|  | ||||
| /* Includes ------------------------------------------------------------------*/ | ||||
| #include "stm32f1xx_hal.h" | ||||
|  | ||||
| /** @addtogroup STM32F1xx_HAL_Driver | ||||
|   * @{ | ||||
|   */ | ||||
|  | ||||
| #ifdef HAL_IWDG_MODULE_ENABLED | ||||
| /** @addtogroup IWDG | ||||
|   * @brief IWDG HAL module driver. | ||||
|   * @{ | ||||
|   */ | ||||
|  | ||||
| /* Private typedef -----------------------------------------------------------*/ | ||||
| /* Private define ------------------------------------------------------------*/ | ||||
| /** @defgroup IWDG_Private_Defines IWDG Private Defines | ||||
|   * @{ | ||||
|   */ | ||||
| /* Status register needs up to 5 LSI clock periods divided by the clock | ||||
|    prescaler to be updated. The number of LSI clock periods is upper-rounded to | ||||
|    6 for the timeout value calculation. | ||||
|    The timeout value is also calculated using the highest prescaler (256) and | ||||
|    the LSI_VALUE constant. The value of this constant can be changed by the user | ||||
|    to take into account possible LSI clock period variations. | ||||
|    The timeout value is multiplied by 1000 to be converted in milliseconds. */ | ||||
| #define HAL_IWDG_DEFAULT_TIMEOUT ((6UL * 256UL * 1000UL) / LSI_VALUE) | ||||
| /** | ||||
|   * @} | ||||
|   */ | ||||
|  | ||||
| /* Private macro -------------------------------------------------------------*/ | ||||
| /* Private variables ---------------------------------------------------------*/ | ||||
| /* Private function prototypes -----------------------------------------------*/ | ||||
| /* Exported functions --------------------------------------------------------*/ | ||||
|  | ||||
| /** @addtogroup IWDG_Exported_Functions | ||||
|   * @{ | ||||
|   */ | ||||
|  | ||||
| /** @addtogroup IWDG_Exported_Functions_Group1 | ||||
|   *  @brief    Initialization and Start functions. | ||||
|   * | ||||
| @verbatim | ||||
|  =============================================================================== | ||||
|           ##### Initialization and Start functions ##### | ||||
|  =============================================================================== | ||||
|  [..]  This section provides functions allowing to: | ||||
|       (+) Initialize the IWDG according to the specified parameters in the | ||||
|           IWDG_InitTypeDef of associated handle. | ||||
|       (+) Once initialization is performed in HAL_IWDG_Init function, Watchdog | ||||
|           is reloaded in order to exit function with correct time base. | ||||
|  | ||||
| @endverbatim | ||||
|   * @{ | ||||
|   */ | ||||
|  | ||||
| /** | ||||
|   * @brief  Initialize the IWDG according to the specified parameters in the | ||||
|   *         IWDG_InitTypeDef and start watchdog. Before exiting function, | ||||
|   *         watchdog is refreshed in order to have correct time base. | ||||
|   * @param  hiwdg  pointer to a IWDG_HandleTypeDef structure that contains | ||||
|   *                the configuration information for the specified IWDG module. | ||||
|   * @retval HAL status | ||||
|   */ | ||||
| HAL_StatusTypeDef HAL_IWDG_Init(IWDG_HandleTypeDef *hiwdg) | ||||
| { | ||||
|   uint32_t tickstart; | ||||
|  | ||||
|   /* Check the IWDG handle allocation */ | ||||
|   if (hiwdg == NULL) | ||||
|   { | ||||
|     return HAL_ERROR; | ||||
|   } | ||||
|  | ||||
|   /* Check the parameters */ | ||||
|   assert_param(IS_IWDG_ALL_INSTANCE(hiwdg->Instance)); | ||||
|   assert_param(IS_IWDG_PRESCALER(hiwdg->Init.Prescaler)); | ||||
|   assert_param(IS_IWDG_RELOAD(hiwdg->Init.Reload)); | ||||
|  | ||||
|   /* Enable IWDG. LSI is turned on automatically */ | ||||
|   __HAL_IWDG_START(hiwdg); | ||||
|  | ||||
|   /* Enable write access to IWDG_PR and IWDG_RLR registers by writing | ||||
|   0x5555 in KR */ | ||||
|   IWDG_ENABLE_WRITE_ACCESS(hiwdg); | ||||
|  | ||||
|   /* Write to IWDG registers the Prescaler & Reload values to work with */ | ||||
|   hiwdg->Instance->PR = hiwdg->Init.Prescaler; | ||||
|   hiwdg->Instance->RLR = hiwdg->Init.Reload; | ||||
|  | ||||
|   /* Check pending flag, if previous update not done, return timeout */ | ||||
|   tickstart = HAL_GetTick(); | ||||
|  | ||||
|   /* Wait for register to be updated */ | ||||
|   while (hiwdg->Instance->SR != 0x00u) | ||||
|   { | ||||
|     if ((HAL_GetTick() - tickstart) > HAL_IWDG_DEFAULT_TIMEOUT) | ||||
|     { | ||||
|       return HAL_TIMEOUT; | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   /* Reload IWDG counter with value defined in the reload register */ | ||||
|   __HAL_IWDG_RELOAD_COUNTER(hiwdg); | ||||
|  | ||||
|   /* Return function status */ | ||||
|   return HAL_OK; | ||||
| } | ||||
|  | ||||
| /** | ||||
|   * @} | ||||
|   */ | ||||
|  | ||||
|  | ||||
| /** @addtogroup IWDG_Exported_Functions_Group2 | ||||
|   *  @brief   IO operation functions | ||||
|   * | ||||
| @verbatim | ||||
|  =============================================================================== | ||||
|                       ##### IO operation functions ##### | ||||
|  =============================================================================== | ||||
|  [..]  This section provides functions allowing to: | ||||
|       (+) Refresh the IWDG. | ||||
|  | ||||
| @endverbatim | ||||
|   * @{ | ||||
|   */ | ||||
|  | ||||
|  | ||||
| /** | ||||
|   * @brief  Refresh the IWDG. | ||||
|   * @param  hiwdg  pointer to a IWDG_HandleTypeDef structure that contains | ||||
|   *                the configuration information for the specified IWDG module. | ||||
|   * @retval HAL status | ||||
|   */ | ||||
| HAL_StatusTypeDef HAL_IWDG_Refresh(IWDG_HandleTypeDef *hiwdg) | ||||
| { | ||||
|   /* Reload IWDG counter with value defined in the reload register */ | ||||
|   __HAL_IWDG_RELOAD_COUNTER(hiwdg); | ||||
|  | ||||
|   /* Return function status */ | ||||
|   return HAL_OK; | ||||
| } | ||||
|  | ||||
| /** | ||||
|   * @} | ||||
|   */ | ||||
|  | ||||
| /** | ||||
|   * @} | ||||
|   */ | ||||
|  | ||||
| #endif /* HAL_IWDG_MODULE_ENABLED */ | ||||
| /** | ||||
|   * @} | ||||
|   */ | ||||
|  | ||||
| /** | ||||
|   * @} | ||||
|   */ | ||||
|  | ||||
| /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ | ||||
| @@ -2014,10 +2014,6 @@ HAL_StatusTypeDef HAL_UART_AbortReceive_IT(UART_HandleTypeDef *huart) | ||||
|   return HAL_OK; | ||||
| } | ||||
|  | ||||
| inline void dts(uint8_t v) { | ||||
|       while (v--) HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_10); | ||||
| } | ||||
|  | ||||
| /** | ||||
|   * @brief  This function handles UART interrupt request. | ||||
|   * @param  huart  Pointer to a UART_HandleTypeDef structure that contains | ||||
| @@ -2026,8 +2022,6 @@ inline void dts(uint8_t v) { | ||||
|   */ | ||||
| void HAL_UART_IRQHandler(UART_HandleTypeDef *huart) | ||||
| { | ||||
|   HAL_GPIO_TogglePin(GPIOE, GPIO_PIN_12); | ||||
|  | ||||
|   uint32_t isrflags   = READ_REG(huart->Instance->SR); | ||||
|   uint32_t cr1its     = READ_REG(huart->Instance->CR1); | ||||
|   uint32_t cr3its     = READ_REG(huart->Instance->CR3); | ||||
| @@ -2041,7 +2035,6 @@ void HAL_UART_IRQHandler(UART_HandleTypeDef *huart) | ||||
|     /* UART in mode Receiver -------------------------------------------------*/ | ||||
|     if (((isrflags & USART_SR_RXNE) != RESET) && ((cr1its & USART_CR1_RXNEIE) != RESET)) | ||||
|     { | ||||
| dts(1); | ||||
|       UART_Receive_IT(huart); | ||||
|       return; | ||||
|     } | ||||
| @@ -2050,7 +2043,6 @@ dts(1); | ||||
|   /* If some errors occur */ | ||||
|   if ((errorflags != RESET) && (((cr3its & USART_CR3_EIE) != RESET) || ((cr1its & (USART_CR1_RXNEIE | USART_CR1_PEIE)) != RESET))) | ||||
|   { | ||||
| dts(2); | ||||
|     /* UART parity error interrupt occurred ----------------------------------*/ | ||||
|     if (((isrflags & USART_SR_PE) != RESET) && ((cr1its & USART_CR1_PEIE) != RESET)) | ||||
|     { | ||||
| @@ -2078,14 +2070,10 @@ dts(2); | ||||
|     /* Call UART Error Call back function if need be --------------------------*/ | ||||
|     if (huart->ErrorCode != HAL_UART_ERROR_NONE) | ||||
|     { | ||||
| dts(3); | ||||
|       /* UART in mode Receiver -----------------------------------------------*/ | ||||
|       if (((isrflags & USART_SR_RXNE) != RESET) && ((cr1its & USART_CR1_RXNEIE) != RESET)) | ||||
|       { | ||||
|         dts(4); | ||||
|         UART_Receive_IT(huart); | ||||
|       } else { | ||||
|         dts(5); | ||||
|       } | ||||
|  | ||||
|       /* If Overrun error occurs, or if any error occurs in DMA mode reception, | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| # Processed by ../tools/insertMyCode.sh | ||||
| ########################################################################################################################## | ||||
| # File automatically-generated by tool: [projectgenerator] version: [3.10.0-B14] date: [Thu Nov 19 18:53:40 CET 2020] | ||||
| # File automatically-generated by tool: [projectgenerator] version: [3.10.0-B14] date: [Sun Dec 27 11:47:17 CET 2020] | ||||
| ########################################################################################################################## | ||||
|  | ||||
| # ------------------------------------------------ | ||||
| @@ -37,11 +37,12 @@ BUILD_DIR = build | ||||
| ###################################### | ||||
| # C sources | ||||
| C_SOURCES =  \ | ||||
| User/Src/regularCmds.c User/Src/adminCmds.c User/Src/configCmds.c User/Src/config.c User/Src/oled.c User/Src/cmdHandler.c User/Src/eeprom.c User/Src/frontend.c User/Src/logger.c User/Src/loopCtrl.c User/Src/main2.c User/Src/mbusComm.c User/Src/mbusParserExt.c User/Src/mqttComm.c User/Src/ports.c User/Src/ringbuffer.c User/Src/show.c User/Src/utils.c User/Src/wizHelper.c hottislib/PontCoopScheduler.c  \ | ||||
| User/Src/adminCmds.c User/Src/cmdHandler.c User/Src/config.c User/Src/configCmds.c User/Src/eeprom.c User/Src/frontend.c User/Src/logger.c User/Src/loopCtrl.c User/Src/main2.c User/Src/mbusComm.c User/Src/mbusParserExt.c User/Src/mqttComm.c User/Src/oled.c User/Src/ports.c User/Src/regularCmds.c User/Src/ringbuffer.c User/Src/show.c User/Src/utils.c User/Src/wizHelper.c hottislib/PontCoopScheduler.c  \ | ||||
| libmbus/mbus/mbus-protocol.c \ | ||||
| Core/Src/main.c \ | ||||
| Core/Src/gpio.c \ | ||||
| Core/Src/adc.c \ | ||||
| Core/Src/iwdg.c \ | ||||
| Core/Src/spi.c \ | ||||
| Core/Src/usart.c \ | ||||
| Core/Src/stm32f1xx_it.c \ | ||||
| @@ -59,6 +60,7 @@ Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c \ | ||||
| Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c \ | ||||
| Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c \ | ||||
| Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c \ | ||||
| Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_iwdg.c \ | ||||
| Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_spi.c \ | ||||
| Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c \ | ||||
| Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c \ | ||||
| @@ -124,8 +126,8 @@ C_INCLUDES =  \ | ||||
| -Ipubsubc/src \ | ||||
| -Ilibmbus \ | ||||
| -IUser/Inc \ | ||||
| -IioLibrary_Driver/Internet/DHCP \ | ||||
| -IioLibrary_Driver/Internet/DNS \ | ||||
| -IioLibrary_Driver/Internet/DHCP \ | ||||
| -IioLibrary_Driver/Ethernet \ | ||||
| -ICore/Inc \ | ||||
| -IDrivers/STM32F1xx_HAL_Driver/Inc \ | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| ########################################################################################################################## | ||||
| # File automatically-generated by tool: [projectgenerator] version: [3.10.0-B14] date: [Thu Nov 19 18:53:40 CET 2020] | ||||
| # File automatically-generated by tool: [projectgenerator] version: [3.10.0-B14] date: [Sun Dec 27 11:47:17 CET 2020] | ||||
| ########################################################################################################################## | ||||
|  | ||||
| # ------------------------------------------------ | ||||
| @@ -39,6 +39,7 @@ C_SOURCES =  \ | ||||
| Core/Src/main.c \ | ||||
| Core/Src/gpio.c \ | ||||
| Core/Src/adc.c \ | ||||
| Core/Src/iwdg.c \ | ||||
| Core/Src/spi.c \ | ||||
| Core/Src/usart.c \ | ||||
| Core/Src/stm32f1xx_it.c \ | ||||
| @@ -56,6 +57,7 @@ Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c \ | ||||
| Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c \ | ||||
| Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c \ | ||||
| Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c \ | ||||
| Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_iwdg.c \ | ||||
| Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_spi.c \ | ||||
| Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c \ | ||||
| Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c \ | ||||
|   | ||||
| @@ -9,18 +9,21 @@ ADC1.SamplingTime-0\#ChannelRegularConversion=ADC_SAMPLETIME_71CYCLES_5 | ||||
| ADC1.master=1 | ||||
| File.Version=6 | ||||
| GPIO.groupedBy=Group By Peripherals | ||||
| IWDG.IPParameters=Prescaler | ||||
| IWDG.Prescaler=IWDG_PRESCALER_8 | ||||
| KeepUserPlacement=false | ||||
| Mcu.Family=STM32F1 | ||||
| Mcu.IP0=ADC1 | ||||
| Mcu.IP1=NVIC | ||||
| Mcu.IP2=RCC | ||||
| Mcu.IP3=SPI1 | ||||
| Mcu.IP4=SPI2 | ||||
| Mcu.IP5=SPI3 | ||||
| Mcu.IP6=SYS | ||||
| Mcu.IP7=UART4 | ||||
| Mcu.IP8=UART5 | ||||
| Mcu.IPNb=9 | ||||
| Mcu.IP1=IWDG | ||||
| Mcu.IP2=NVIC | ||||
| Mcu.IP3=RCC | ||||
| Mcu.IP4=SPI1 | ||||
| Mcu.IP5=SPI2 | ||||
| Mcu.IP6=SPI3 | ||||
| Mcu.IP7=SYS | ||||
| Mcu.IP8=UART4 | ||||
| Mcu.IP9=UART5 | ||||
| Mcu.IPNb=10 | ||||
| Mcu.Name=STM32F103V(C-D-E)Tx | ||||
| Mcu.Package=LQFP100 | ||||
| Mcu.Pin0=PE2 | ||||
| @@ -50,14 +53,15 @@ Mcu.Pin3=PE5 | ||||
| Mcu.Pin30=PB5 | ||||
| Mcu.Pin31=PB6 | ||||
| Mcu.Pin32=PB7 | ||||
| Mcu.Pin33=VP_SYS_VS_Systick | ||||
| Mcu.Pin33=VP_IWDG_VS_IWDG | ||||
| Mcu.Pin34=VP_SYS_VS_Systick | ||||
| Mcu.Pin4=PE6 | ||||
| Mcu.Pin5=OSC_IN | ||||
| Mcu.Pin6=OSC_OUT | ||||
| Mcu.Pin7=PA1 | ||||
| Mcu.Pin8=PA2 | ||||
| Mcu.Pin9=PA3 | ||||
| Mcu.PinsNb=34 | ||||
| Mcu.PinsNb=35 | ||||
| Mcu.ThirdPartyNb=0 | ||||
| Mcu.UserConstants=debugUart,huart4;mbusUart,huart5;frontendAdc,hadc1;eepromSpi,hspi2;etherSpi,hspi1;displaySpi,hspi3;debugUartIRQn,UART4_IRQn | ||||
| Mcu.UserName=STM32F103VCTx | ||||
| @@ -232,7 +236,7 @@ ProjectManager.StackSize=0x400 | ||||
| ProjectManager.TargetToolchain=Makefile | ||||
| ProjectManager.ToolChainLocation= | ||||
| ProjectManager.UnderRoot=false | ||||
| ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_ADC1_Init-ADC1-false-HAL-true,4-MX_SPI2_Init-SPI2-false-HAL-true,5-MX_SPI3_Init-SPI3-false-HAL-true,6-MX_UART4_Init-UART4-false-HAL-true,7-MX_UART5_Init-UART5-false-HAL-true,8-MX_SPI1_Init-SPI1-false-HAL-true | ||||
| ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_ADC1_Init-ADC1-false-HAL-true,4-MX_SPI2_Init-SPI2-false-HAL-true,5-MX_SPI3_Init-SPI3-false-HAL-true,6-MX_UART4_Init-UART4-false-HAL-true,7-MX_UART5_Init-UART5-false-HAL-true,8-MX_SPI1_Init-SPI1-false-HAL-true,9-MX_IWDG_Init-IWDG-false-HAL-true | ||||
| RCC.ADCFreqValue=4500000 | ||||
| RCC.ADCPresc=RCC_ADCPCLK2_DIV8 | ||||
| RCC.AHBFreq_Value=72000000 | ||||
| @@ -292,6 +296,8 @@ UART5.IPParameters=VirtualMode,BaudRate,Parity,WordLength | ||||
| UART5.Parity=PARITY_EVEN | ||||
| UART5.VirtualMode=Asynchronous | ||||
| UART5.WordLength=WORDLENGTH_9B | ||||
| VP_IWDG_VS_IWDG.Mode=IWDG_Activate | ||||
| VP_IWDG_VS_IWDG.Signal=IWDG_VS_IWDG | ||||
| VP_SYS_VS_Systick.Mode=SysTick | ||||
| VP_SYS_VS_Systick.Signal=SYS_VS_Systick | ||||
| board=custom | ||||
|   | ||||
		Reference in New Issue
	
	Block a user