Prusa MINI Firmware overview
stm32f4xx_hal.c File Reference

HAL module driver. This is the common part of the HAL initialization. More...

#include "stm32f4xx_hal.h"

Macros

#define __STM32F4xx_HAL_VERSION_MAIN   (0x01U)
 STM32F4xx HAL Driver version number V1.7.4. More...
 
#define __STM32F4xx_HAL_VERSION_SUB1   (0x07U)
 
#define __STM32F4xx_HAL_VERSION_SUB2   (0x04U)
 
#define __STM32F4xx_HAL_VERSION_RC   (0x00U)
 
#define __STM32F4xx_HAL_VERSION
 
#define IDCODE_DEVID_MASK   0x00000FFFU
 
#define SYSCFG_OFFSET   (SYSCFG_BASE - PERIPH_BASE)
 
#define MEMRMP_OFFSET   SYSCFG_OFFSET
 
#define UFB_MODE_BIT_NUMBER   SYSCFG_MEMRMP_UFB_MODE_Pos
 
#define UFB_MODE_BB   (uint32_t)(PERIPH_BB_BASE + (MEMRMP_OFFSET * 32U) + (UFB_MODE_BIT_NUMBER * 4U))
 
#define CMPCR_OFFSET   (SYSCFG_OFFSET + 0x20U)
 
#define CMP_PD_BIT_NUMBER   SYSCFG_CMPCR_CMP_PD_Pos
 
#define CMPCR_CMP_PD_BB   (uint32_t)(PERIPH_BB_BASE + (CMPCR_OFFSET * 32U) + (CMP_PD_BIT_NUMBER * 4U))
 
#define MCHDLYCR_OFFSET   (SYSCFG_OFFSET + 0x30U)
 
#define BSCKSEL_BIT_NUMBER   SYSCFG_MCHDLYCR_BSCKSEL_Pos
 
#define MCHDLYCR_BSCKSEL_BB   (uint32_t)(PERIPH_BB_BASE + (MCHDLYCR_OFFSET * 32U) + (BSCKSEL_BIT_NUMBER * 4U))
 

Functions

HAL_StatusTypeDef HAL_Init (void)
 This function is used to initialize the HAL Library; it must be the first instruction to be executed in the main program (before to call any other HAL function), it performs the following: Configure the Flash prefetch, instruction and Data caches. Configures the SysTick to generate an interrupt each 1 millisecond, which is clocked by the HSI (at this stage, the clock is not yet configured and thus the system is running from the internal HSI at 16 MHz). Set NVIC Group Priority to 4. Calls the HAL_MspInit() callback function defined in user file "stm32f4xx_hal_msp.c" to do the global low level hardware initialization. More...
 
HAL_StatusTypeDef HAL_DeInit (void)
 This function de-Initializes common part of the HAL and stops the systick. This function is optional. More...
 
void HAL_MspInit (void)
 Initialize the MSP. More...
 
void HAL_MspDeInit (void)
 DeInitializes the MSP. More...
 
HAL_StatusTypeDef HAL_InitTick (uint32_t TickPriority)
 This function configures the source of the time base. The time source is configured to have 1ms time base with a dedicated Tick interrupt priority. More...
 
void HAL_IncTick (void)
 This function is called to increment a global variable "uwTick" used as application time base. More...
 
uint32_t HAL_GetTick (void)
 Provides a tick value in millisecond. More...
 
uint32_t HAL_GetTickPrio (void)
 This function returns a tick priority. More...
 
HAL_StatusTypeDef HAL_SetTickFreq (HAL_TickFreqTypeDef Freq)
 Set new tick Freq. More...
 
HAL_TickFreqTypeDef HAL_GetTickFreq (void)
 Return tick frequency. More...
 
void HAL_Delay (uint32_t Delay)
 This function provides minimum delay (in milliseconds) based on variable incremented. More...
 
void HAL_SuspendTick (void)
 Suspend Tick increment. More...
 
void HAL_ResumeTick (void)
 Resume Tick increment. More...
 
uint32_t HAL_GetHalVersion (void)
 Returns the HAL revision. More...
 
uint32_t HAL_GetREVID (void)
 Returns the device revision identifier. More...
 
uint32_t HAL_GetDEVID (void)
 Returns the device identifier. More...
 
void HAL_DBGMCU_EnableDBGSleepMode (void)
 Enable the Debug Module during SLEEP mode. More...
 
void HAL_DBGMCU_DisableDBGSleepMode (void)
 Disable the Debug Module during SLEEP mode. More...
 
void HAL_DBGMCU_EnableDBGStopMode (void)
 Enable the Debug Module during STOP mode. More...
 
void HAL_DBGMCU_DisableDBGStopMode (void)
 Disable the Debug Module during STOP mode. More...
 
void HAL_DBGMCU_EnableDBGStandbyMode (void)
 Enable the Debug Module during STANDBY mode. More...
 
void HAL_DBGMCU_DisableDBGStandbyMode (void)
 Disable the Debug Module during STANDBY mode. More...
 
void HAL_EnableCompensationCell (void)
 Enables the I/O Compensation Cell. More...
 
void HAL_DisableCompensationCell (void)
 Power-down the I/O Compensation Cell. More...
 
void HAL_GetUID (uint32_t *UID)
 Return the unique device identifier (UID based on 96 bits) More...
 

Variables

__IO uint32_t uwTick
 
uint32_t uwTickPrio = (1UL << __NVIC_PRIO_BITS)
 
HAL_TickFreqTypeDef uwTickFreq = HAL_TICK_FREQ_DEFAULT
 

Detailed Description

HAL module driver. This is the common part of the HAL initialization.

Author
MCD Application Team
==============================================================================
                   ##### How to use this driver #####
==============================================================================
  [..]
  The common HAL driver contains a set of generic and common APIs that can be
  used by the PPP peripheral drivers and the user to start using the HAL.
  [..]
  The HAL contains two APIs' categories:
       (+) Common HAL APIs
       (+) Services HAL APIs
Attention

© COPYRIGHT(c) 2017 STMicroelectronics

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  3. Neither the name of STMicroelectronics nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.