Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
TASTE
uPython-mirror
Commits
c1fa33b4
Commit
c1fa33b4
authored
Sep 06, 2016
by
Krzysztof Blazewicz
Browse files
stmhal: upgrade to STM32CubeF4 v1.13.0 - HAL v1.5.1
parent
4f5c4fdd
Changes
61
Hide whitespace changes
Inline
Side-by-side
Too many changes to show.
To preserve performance only
20 of 61+
files are displayed.
Plain diff
Email patch
stmhal/hal/f4/src/stm32f4xx_hal_cortex.c
View file @
c1fa33b4
...
...
@@ -2,8 +2,8 @@
******************************************************************************
* @file stm32f4xx_hal_cortex.c
* @author MCD Application Team
* @version V1.
1.0
* @date 1
9
-Ju
ne
-201
4
* @version V1.
5.1
* @date
0
1-Ju
ly
-201
6
* @brief CORTEX HAL module driver.
* This file provides firmware functions to manage the following
* functionalities of the CORTEX:
...
...
@@ -28,11 +28,11 @@
(#) Enable the selected IRQ Channels using HAL_NVIC_EnableIRQ().
(#) please refer to programing manual for details in how to configure priority.
-@- When the NVIC_PRIORITYGROUP_0 is selected, IRQ pre
-
emption is no more possible.
-@- When the NVIC_PRIORITYGROUP_0 is selected, IRQ preemption is no more possible.
The pending IRQ priority will be managed only by the sub priority.
-@- IRQ priority order (sorted by highest to lowest priority):
(+@) Lowest pre
-
emption priority
(+@) Lowest preemption priority
(+@) Lowest sub priority
(+@) Lowest hardware priority (IRQ number)
...
...
@@ -45,7 +45,7 @@
(+) The HAL_SYSTICK_Config() function calls the SysTick_Config() function which
is a CMSIS function that:
(++) Configures the SysTick Reload register with value passed as function parameter.
(++) Configures the SysTick IRQ priority to the lowest value (0x0F).
(++) Configures the SysTick IRQ priority to the lowest value (0x0F
U
).
(++) Resets the SysTick Counter register.
(++) Configures the SysTick Counter clock source to be Core Clock Source (HCLK).
(++) Enables the SysTick Interrupt.
...
...
@@ -70,7 +70,7 @@
******************************************************************************
* @attention
*
* <h2><center>© COPYRIGHT(c) 201
4
STMicroelectronics</center></h2>
* <h2><center>© COPYRIGHT(c) 201
6
STMicroelectronics</center></h2>
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
...
...
@@ -104,26 +104,26 @@
* @{
*/
/** @defgroup CORTEX
/** @defgroup CORTEX
CORTEX
* @brief CORTEX HAL module driver
* @{
*/
#ifdef HAL_CORTEX_MODULE_ENABLED
/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
/* Private macro -------------------------------------------------------------*/
/* Private types -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private function prototypes -----------------------------------------------*/
/* Private constants ---------------------------------------------------------*/
/* Private macros ------------------------------------------------------------*/
/* Private functions ---------------------------------------------------------*/
/* Exported functions --------------------------------------------------------*/
/** @defgroup CORTEX_
Private_
Functions
/** @defgroup CORTEX_
Exported_Functions CORTEX Exported
Functions
* @{
*/
/** @defgroup CORTEX_Group1 Initialization and de-initialization functions
/** @defgroup CORTEX_
Exported_Functions_
Group1 Initialization and de-initialization functions
* @brief Initialization and Configuration functions
*
@verbatim
...
...
@@ -140,21 +140,21 @@
/**
* @brief Sets the priority grouping field (pre
-
emption priority and subpriority)
* @brief Sets the priority grouping field (preemption priority and subpriority)
* using the required unlock sequence.
* @param PriorityGroup: The priority grouping bits length.
* This parameter can be one of the following values:
* @arg NVIC_PRIORITYGROUP_0: 0 bits for pre
-
emption priority
* @arg NVIC_PRIORITYGROUP_0: 0 bits for preemption priority
* 4 bits for subpriority
* @arg NVIC_PRIORITYGROUP_1: 1 bits for pre
-
emption priority
* @arg NVIC_PRIORITYGROUP_1: 1 bits for preemption priority
* 3 bits for subpriority
* @arg NVIC_PRIORITYGROUP_2: 2 bits for pre
-
emption priority
* @arg NVIC_PRIORITYGROUP_2: 2 bits for preemption priority
* 2 bits for subpriority
* @arg NVIC_PRIORITYGROUP_3: 3 bits for pre
-
emption priority
* @arg NVIC_PRIORITYGROUP_3: 3 bits for preemption priority
* 1 bits for subpriority
* @arg NVIC_PRIORITYGROUP_4: 4 bits for pre
-
emption priority
* @arg NVIC_PRIORITYGROUP_4: 4 bits for preemption priority
* 0 bits for subpriority
* @note When the NVIC_PriorityGroup_0 is selected, IRQ pre
-
emption is no more possible.
* @note When the NVIC_PriorityGroup_0 is selected, IRQ preemption is no more possible.
* The pending IRQ priority will be managed only by the subpriority.
* @retval None
*/
...
...
@@ -171,8 +171,8 @@ void HAL_NVIC_SetPriorityGrouping(uint32_t PriorityGroup)
* @brief Sets the priority of an interrupt.
* @param IRQn: External interrupt number.
* This parameter can be an enumerator of IRQn_Type enumeration
* (For the complete STM32 Devices IRQ Channels list, please refer to stm32f4xx
.h file
)
* @param PreemptPriority: The pre
-
emption priority for the IRQn channel.
* (For the complete STM32 Devices IRQ Channels list, please refer to
the appropriate CMSIS device file (
stm32f4xx
xx.h)
)
* @param PreemptPriority: The preemption priority for the IRQn channel.
* This parameter can be a value between 0 and 15
* A lower priority value indicates a higher priority
* @param SubPriority: the subpriority level for the IRQ channel.
...
...
@@ -182,7 +182,7 @@ void HAL_NVIC_SetPriorityGrouping(uint32_t PriorityGroup)
*/
void
HAL_NVIC_SetPriority
(
IRQn_Type
IRQn
,
uint32_t
PreemptPriority
,
uint32_t
SubPriority
)
{
uint32_t
prioritygroup
=
0x00
;
uint32_t
prioritygroup
=
0x00
U
;
/* Check the parameters */
assert_param
(
IS_NVIC_SUB_PRIORITY
(
SubPriority
));
...
...
@@ -199,11 +199,14 @@ void HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority, uint32_t Sub
* function should be called before.
* @param IRQn External interrupt number.
* This parameter can be an enumerator of IRQn_Type enumeration
* (For the complete STM32 Devices IRQ Channels list, please refer to
stm32f4xx.h file)
* (For the complete STM32 Devices IRQ Channels list, please refer to
the appropriate CMSIS device file (stm32f4xxxx.h))
* @retval None
*/
void
HAL_NVIC_EnableIRQ
(
IRQn_Type
IRQn
)
{
/* Check the parameters */
assert_param
(
IS_NVIC_DEVICE_IRQ
(
IRQn
));
/* Enable interrupt */
NVIC_EnableIRQ
(
IRQn
);
}
...
...
@@ -212,18 +215,20 @@ void HAL_NVIC_EnableIRQ(IRQn_Type IRQn)
* @brief Disables a device specific interrupt in the NVIC interrupt controller.
* @param IRQn External interrupt number.
* This parameter can be an enumerator of IRQn_Type enumeration
* (For the complete STM32 Devices IRQ Channels list, please refer to
stm32f4xx.h file)
* (For the complete STM32 Devices IRQ Channels list, please refer to
the appropriate CMSIS device file (stm32f4xxxx.h))
* @retval None
*/
void
HAL_NVIC_DisableIRQ
(
IRQn_Type
IRQn
)
{
/* Check the parameters */
assert_param
(
IS_NVIC_DEVICE_IRQ
(
IRQn
));
/* Disable interrupt */
NVIC_DisableIRQ
(
IRQn
);
}
/**
* @brief Initiates a system reset request to reset the MCU.
* @param None
* @retval None
*/
void
HAL_NVIC_SystemReset
(
void
)
...
...
@@ -247,7 +252,7 @@ uint32_t HAL_SYSTICK_Config(uint32_t TicksNumb)
* @}
*/
/** @defgroup CORTEX_Group2 Peripheral Control functions
/** @defgroup CORTEX_
Exported_Functions_
Group2 Peripheral Control functions
* @brief Cortex control functions
*
@verbatim
...
...
@@ -256,16 +261,62 @@ uint32_t HAL_SYSTICK_Config(uint32_t TicksNumb)
==============================================================================
[..]
This subsection provides a set of functions allowing to control the CORTEX
(NVIC, SYSTICK) functionalities.
(NVIC, SYSTICK
, MPU
) functionalities.
@endverbatim
* @{
*/
#if (__MPU_PRESENT == 1U)
/**
* @brief Initializes and configures the Region and the memory to be protected.
* @param MPU_Init: Pointer to a MPU_Region_InitTypeDef structure that contains
* the initialization and configuration information.
* @retval None
*/
void
HAL_MPU_ConfigRegion
(
MPU_Region_InitTypeDef
*
MPU_Init
)
{
/* Check the parameters */
assert_param
(
IS_MPU_REGION_NUMBER
(
MPU_Init
->
Number
));
assert_param
(
IS_MPU_REGION_ENABLE
(
MPU_Init
->
Enable
));
/* Set the Region number */
MPU
->
RNR
=
MPU_Init
->
Number
;
if
((
MPU_Init
->
Enable
)
!=
RESET
)
{
/* Check the parameters */
assert_param
(
IS_MPU_INSTRUCTION_ACCESS
(
MPU_Init
->
DisableExec
));
assert_param
(
IS_MPU_REGION_PERMISSION_ATTRIBUTE
(
MPU_Init
->
AccessPermission
));
assert_param
(
IS_MPU_TEX_LEVEL
(
MPU_Init
->
TypeExtField
));
assert_param
(
IS_MPU_ACCESS_SHAREABLE
(
MPU_Init
->
IsShareable
));
assert_param
(
IS_MPU_ACCESS_CACHEABLE
(
MPU_Init
->
IsCacheable
));
assert_param
(
IS_MPU_ACCESS_BUFFERABLE
(
MPU_Init
->
IsBufferable
));
assert_param
(
IS_MPU_SUB_REGION_DISABLE
(
MPU_Init
->
SubRegionDisable
));
assert_param
(
IS_MPU_REGION_SIZE
(
MPU_Init
->
Size
));
MPU
->
RBAR
=
MPU_Init
->
BaseAddress
;
MPU
->
RASR
=
((
uint32_t
)
MPU_Init
->
DisableExec
<<
MPU_RASR_XN_Pos
)
|
((
uint32_t
)
MPU_Init
->
AccessPermission
<<
MPU_RASR_AP_Pos
)
|
((
uint32_t
)
MPU_Init
->
TypeExtField
<<
MPU_RASR_TEX_Pos
)
|
((
uint32_t
)
MPU_Init
->
IsShareable
<<
MPU_RASR_S_Pos
)
|
((
uint32_t
)
MPU_Init
->
IsCacheable
<<
MPU_RASR_C_Pos
)
|
((
uint32_t
)
MPU_Init
->
IsBufferable
<<
MPU_RASR_B_Pos
)
|
((
uint32_t
)
MPU_Init
->
SubRegionDisable
<<
MPU_RASR_SRD_Pos
)
|
((
uint32_t
)
MPU_Init
->
Size
<<
MPU_RASR_SIZE_Pos
)
|
((
uint32_t
)
MPU_Init
->
Enable
<<
MPU_RASR_ENABLE_Pos
);
}
else
{
MPU
->
RBAR
=
0x00U
;
MPU
->
RASR
=
0x00U
;
}
}
#endif
/* __MPU_PRESENT */
/**
* @brief Gets the priority grouping field from the NVIC Interrupt Controller.
* @param None
* @retval Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field)
*/
uint32_t
HAL_NVIC_GetPriorityGrouping
(
void
)
...
...
@@ -278,18 +329,18 @@ uint32_t HAL_NVIC_GetPriorityGrouping(void)
* @brief Gets the priority of an interrupt.
* @param IRQn: External interrupt number.
* This parameter can be an enumerator of IRQn_Type enumeration
* (For the complete STM32 Devices IRQ Channels list, please refer to stm32f4xx
.h file
)
* (For the complete STM32 Devices IRQ Channels list, please refer to
the appropriate CMSIS device file (
stm32f4xx
xx.h)
)
* @param PriorityGroup: the priority grouping bits length.
* This parameter can be one of the following values:
* @arg NVIC_PRIORITYGROUP_0: 0 bits for pre
-
emption priority
* @arg NVIC_PRIORITYGROUP_0: 0 bits for preemption priority
* 4 bits for subpriority
* @arg NVIC_PRIORITYGROUP_1: 1 bits for pre
-
emption priority
* @arg NVIC_PRIORITYGROUP_1: 1 bits for preemption priority
* 3 bits for subpriority
* @arg NVIC_PRIORITYGROUP_2: 2 bits for pre
-
emption priority
* @arg NVIC_PRIORITYGROUP_2: 2 bits for preemption priority
* 2 bits for subpriority
* @arg NVIC_PRIORITYGROUP_3: 3 bits for pre
-
emption priority
* @arg NVIC_PRIORITYGROUP_3: 3 bits for preemption priority
* 1 bits for subpriority
* @arg NVIC_PRIORITYGROUP_4: 4 bits for pre
-
emption priority
* @arg NVIC_PRIORITYGROUP_4: 4 bits for preemption priority
* 0 bits for subpriority
* @param pPreemptPriority: Pointer on the Preemptive priority value (starting from 0).
* @param pSubPriority: Pointer on the Subpriority value (starting from 0).
...
...
@@ -306,12 +357,15 @@ void HAL_NVIC_GetPriority(IRQn_Type IRQn, uint32_t PriorityGroup, uint32_t *pPre
/**
* @brief Sets Pending bit of an external interrupt.
* @param IRQn External interrupt number
* This parameter can be an enumerator of
@ref
IRQn_Type enumeration
* (For the complete STM32 Devices IRQ Channels list, please refer to
stm32f4xx.h file)
* This parameter can be an enumerator of IRQn_Type enumeration
* (For the complete STM32 Devices IRQ Channels list, please refer to
the appropriate CMSIS device file (stm32f4xxxx.h))
* @retval None
*/
void
HAL_NVIC_SetPendingIRQ
(
IRQn_Type
IRQn
)
{
{
/* Check the parameters */
assert_param
(
IS_NVIC_DEVICE_IRQ
(
IRQn
));
/* Set interrupt pending */
NVIC_SetPendingIRQ
(
IRQn
);
}
...
...
@@ -321,12 +375,15 @@ void HAL_NVIC_SetPendingIRQ(IRQn_Type IRQn)
* and returns the pending bit for the specified interrupt).
* @param IRQn External interrupt number.
* This parameter can be an enumerator of IRQn_Type enumeration
*
(For the complete STM32 Devices IRQ Channels list, please refer to
stm32f4xx.h file)
* (For the complete STM32 Devices IRQ Channels list, please refer to
the appropriate CMSIS device file (stm32f4xxxx.h))
* @retval status: - 0 Interrupt status is not pending.
* - 1 Interrupt status is pending.
*/
uint32_t
HAL_NVIC_GetPendingIRQ
(
IRQn_Type
IRQn
)
{
{
/* Check the parameters */
assert_param
(
IS_NVIC_DEVICE_IRQ
(
IRQn
));
/* Return 1 if pending else 0 */
return
NVIC_GetPendingIRQ
(
IRQn
);
}
...
...
@@ -335,11 +392,14 @@ uint32_t HAL_NVIC_GetPendingIRQ(IRQn_Type IRQn)
* @brief Clears the pending bit of an external interrupt.
* @param IRQn External interrupt number.
* This parameter can be an enumerator of IRQn_Type enumeration
* (For the complete STM32 Devices IRQ Channels list, please refer to
stm32f4xx.h file)
* (For the complete STM32 Devices IRQ Channels list, please refer to
the appropriate CMSIS device file (stm32f4xxxx.h))
* @retval None
*/
void
HAL_NVIC_ClearPendingIRQ
(
IRQn_Type
IRQn
)
{
{
/* Check the parameters */
assert_param
(
IS_NVIC_DEVICE_IRQ
(
IRQn
));
/* Clear pending interrupt */
NVIC_ClearPendingIRQ
(
IRQn
);
}
...
...
@@ -348,12 +408,15 @@ void HAL_NVIC_ClearPendingIRQ(IRQn_Type IRQn)
* @brief Gets active interrupt ( reads the active register in NVIC and returns the active bit).
* @param IRQn External interrupt number
* This parameter can be an enumerator of IRQn_Type enumeration
* (For the complete STM32 Devices IRQ Channels list, please refer to
stm32f4xx.h file)
* (For the complete STM32 Devices IRQ Channels list, please refer to
the appropriate CMSIS device file (stm32f4xxxx.h))
* @retval status: - 0 Interrupt status is not pending.
* - 1 Interrupt status is pending.
*/
uint32_t
HAL_NVIC_GetActive
(
IRQn_Type
IRQn
)
{
{
/* Check the parameters */
assert_param
(
IS_NVIC_DEVICE_IRQ
(
IRQn
));
/* Return 1 if active else 0 */
return
NVIC_GetActive
(
IRQn
);
}
...
...
@@ -382,7 +445,6 @@ void HAL_SYSTICK_CLKSourceConfig(uint32_t CLKSource)
/**
* @brief This function handles SYSTICK interrupt request.
* @param None
* @retval None
*/
void
HAL_SYSTICK_IRQHandler
(
void
)
...
...
@@ -392,7 +454,6 @@ void HAL_SYSTICK_IRQHandler(void)
/**
* @brief SYSTICK callback.
* @param None
* @retval None
*/
__weak
void
HAL_SYSTICK_Callback
(
void
)
...
...
stmhal/hal/f4/src/stm32f4xx_hal_dac.c
View file @
c1fa33b4
...
...
@@ -2,8 +2,8 @@
******************************************************************************
* @file stm32f4xx_hal_dac.c
* @author MCD Application Team
* @version V1.
1.0
* @date 1
9
-Ju
ne
-201
4
* @version V1.
5.1
* @date
0
1-Ju
ly
-201
6
* @brief DAC HAL module driver.
* This file provides firmware functions to manage the following
* functionalities of the Digital to Analog Converter (DAC) peripheral:
...
...
@@ -20,7 +20,7 @@
[..]
*** DAC Channels ***
====================
[..]
[..]
The device integrates two 12-bit Digital Analog Converters that can
be used independently or simultaneously (dual mode):
(#) DAC channel1 with DAC_OUT1 (PA4) as output
...
...
@@ -29,17 +29,17 @@
*** DAC Triggers ***
====================
[..]
Digital to Analog conversion can be non-triggered using DAC_T
rigger_None
Digital to Analog conversion can be non-triggered using DAC_T
RIGGER_NONE
and DAC_OUT1/DAC_OUT2 is available once writing to DHRx register.
[..]
Digital to Analog conversion can be triggered by:
(#) External event: EXTI Line 9 (any GPIOx_Pin9) using DAC_T
rigger_Ext
_IT9.
(#) External event: EXTI Line 9 (any GPIOx_Pin9) using DAC_T
RIGGER_EXT
_IT9.
The used pin (GPIOx_Pin9) must be configured in input mode.
(#) Timers TRGO: TIM2, TIM4, TIM5, TIM6, TIM7 and TIM8
(DAC_T
rigger
_T2_TRGO, DAC_T
rigger
_T4_TRGO...)
(DAC_T
RIGGER
_T2_TRGO, DAC_T
RIGGER
_T4_TRGO...)
(#) Software using DAC_T
rigger_Software
(#) Software using DAC_T
RIGGER_SOFTWARE
*** DAC Buffer mode feature ***
===============================
...
...
@@ -48,7 +48,7 @@
reduce the output impedance, and to drive external loads directly
without having to add an external operational amplifier.
To enable, the output buffer use
sConfig.DAC_OutputBuffer = DAC_O
utputBuffer_Enable
;
sConfig.DAC_OutputBuffer = DAC_O
UTPUTBUFFER_ENABLE
;
[..]
(@) Refer to the device datasheet for more details about output
impedance value with and without output buffer.
...
...
@@ -109,7 +109,7 @@
=================================
[..]
(+) Start the DAC peripheral using HAL_DAC_Start()
(+) To read the DAC last data output
value
value, use the HAL_DAC_GetValue() function.
(+) To read the DAC last data output value, use the HAL_DAC_GetValue() function.
(+) Stop the DAC peripheral using HAL_DAC_Stop()
*** DMA mode IO operation ***
...
...
@@ -141,7 +141,7 @@
******************************************************************************
* @attention
*
* <h2><center>© COPYRIGHT(c) 201
4
STMicroelectronics</center></h2>
* <h2><center>© COPYRIGHT(c) 201
6
STMicroelectronics</center></h2>
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
...
...
@@ -176,30 +176,38 @@
* @{
*/
/** @defgroup DAC
/** @defgroup DAC
DAC
* @brief DAC driver modules
* @{
*/
#ifdef HAL_DAC_MODULE_ENABLED
#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx) || defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)
#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx) ||\
defined
(
STM32F427xx
)
||
defined
(
STM32F437xx
)
||
defined
(
STM32F429xx
)
||
defined
(
STM32F439xx
)
||
\
defined
(
STM32F410Tx
)
||
defined
(
STM32F410Cx
)
||
defined
(
STM32F410Rx
)
||
defined
(
STM32F446xx
)
||
\
defined
(
STM32F469xx
)
||
defined
(
STM32F479xx
)
/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
/* Private macro -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/** @addtogroup DAC_Private_Functions
* @{
*/
/* Private function prototypes -----------------------------------------------*/
static
void
DAC_DMAConvCpltCh1
(
DMA_HandleTypeDef
*
hdma
);
static
void
DAC_DMAErrorCh1
(
DMA_HandleTypeDef
*
hdma
);
static
void
DAC_DMAHalfConvCpltCh1
(
DMA_HandleTypeDef
*
hdma
);
/**
* @}
*/
/* Private functions ---------------------------------------------------------*/
/** @defgroup DAC_Private_Functions
/* Exported functions --------------------------------------------------------*/
/** @defgroup DAC_Exported_Functions DAC Exported Functions
* @{
*/
/** @defgroup DAC_Group1 Initialization and de-initialization functions
/** @defgroup DAC_
Exported_Functions_
Group1 Initialization and de-initialization functions
* @brief Initialization and Configuration functions
*
@verbatim
...
...
@@ -233,6 +241,8 @@ HAL_StatusTypeDef HAL_DAC_Init(DAC_HandleTypeDef* hdac)
if
(
hdac
->
State
==
HAL_DAC_STATE_RESET
)
{
/* Allocate lock resource and initialize it */
hdac
->
Lock
=
HAL_UNLOCKED
;
/* Init the low level hardware */
HAL_DAC_MspInit
(
hdac
);
}
...
...
@@ -294,6 +304,8 @@ HAL_StatusTypeDef HAL_DAC_DeInit(DAC_HandleTypeDef* hdac)
*/
__weak
void
HAL_DAC_MspInit
(
DAC_HandleTypeDef
*
hdac
)
{
/* Prevent unused argument(s) compilation warning */
UNUSED
(
hdac
);
/* NOTE : This function Should not be modified, when the callback is needed,
the HAL_DAC_MspInit could be implemented in the user file
*/
...
...
@@ -307,6 +319,8 @@ __weak void HAL_DAC_MspInit(DAC_HandleTypeDef* hdac)
*/
__weak
void
HAL_DAC_MspDeInit
(
DAC_HandleTypeDef
*
hdac
)
{
/* Prevent unused argument(s) compilation warning */
UNUSED
(
hdac
);
/* NOTE : This function Should not be modified, when the callback is needed,
the HAL_DAC_MspDeInit could be implemented in the user file
*/
...
...
@@ -316,7 +330,7 @@ __weak void HAL_DAC_MspDeInit(DAC_HandleTypeDef* hdac)
* @}
*/
/** @defgroup DAC_Group2 IO operation functions
/** @defgroup DAC_
Exported_Functions_
Group2 IO operation functions
* @brief IO operation functions
*
@verbatim
...
...
@@ -346,7 +360,7 @@ __weak void HAL_DAC_MspDeInit(DAC_HandleTypeDef* hdac)
*/
HAL_StatusTypeDef
HAL_DAC_Start
(
DAC_HandleTypeDef
*
hdac
,
uint32_t
Channel
)
{
uint32_t
tmp1
=
0
,
tmp2
=
0
;
uint32_t
tmp1
=
0
U
,
tmp2
=
0
U
;
/* Check the parameters */
assert_param
(
IS_DAC_CHANNEL
(
Channel
));
...
...
@@ -357,7 +371,7 @@ HAL_StatusTypeDef HAL_DAC_Start(DAC_HandleTypeDef* hdac, uint32_t Channel)
/* Change DAC state */
hdac
->
State
=
HAL_DAC_STATE_BUSY
;
/* Enable the Periph
a
ral */
/* Enable the Periph
e
ral */
__HAL_DAC_ENABLE
(
hdac
,
Channel
);
if
(
Channel
==
DAC_CHANNEL_1
)
...
...
@@ -410,7 +424,7 @@ HAL_StatusTypeDef HAL_DAC_Stop(DAC_HandleTypeDef* hdac, uint32_t Channel)
/* Disable the Peripheral */
__HAL_DAC_DISABLE
(
hdac
,
Channel
);
/* Change DAC state */
hdac
->
State
=
HAL_DAC_STATE_READY
;
...
...
@@ -437,7 +451,7 @@ HAL_StatusTypeDef HAL_DAC_Stop(DAC_HandleTypeDef* hdac, uint32_t Channel)
*/
HAL_StatusTypeDef
HAL_DAC_Start_DMA
(
DAC_HandleTypeDef
*
hdac
,
uint32_t
Channel
,
uint32_t
*
pData
,
uint32_t
Length
,
uint32_t
Alignment
)
{
uint32_t
tmpreg
=
0
;
uint32_t
tmpreg
=
0
U
;
/* Check the parameters */
assert_param
(
IS_DAC_CHANNEL
(
Channel
));
...
...
@@ -534,7 +548,7 @@ HAL_StatusTypeDef HAL_DAC_Start_DMA(DAC_HandleTypeDef* hdac, uint32_t Channel, u
HAL_DMA_Start_IT
(
hdac
->
DMA_Handle2
,
(
uint32_t
)
pData
,
tmpreg
,
Length
);
}
/* Enable the Periph
a
ral */
/* Enable the Periph
e
ral */
__HAL_DAC_ENABLE
(
hdac
,
Channel
);
/* Process Unlocked */
...
...
@@ -564,7 +578,7 @@ HAL_StatusTypeDef HAL_DAC_Stop_DMA(DAC_HandleTypeDef* hdac, uint32_t Channel)
/* Disable the selected DAC channel DMA request */
hdac
->
Instance
->
CR
&=
~
(
DAC_CR_DMAEN1
<<
Channel
);
/* Disable the Periph
a
ral */
/* Disable the Periph
e
ral */
__HAL_DAC_DISABLE
(
hdac
,
Channel
);
/* Disable the DMA Channel */
...
...
@@ -579,9 +593,9 @@ HAL_StatusTypeDef HAL_DAC_Stop_DMA(DAC_HandleTypeDef* hdac, uint32_t Channel)
}
/* Check if DMA Channel effectively disabled */
if
(
status
=
=
HAL_
ERROR
)
if
(
status
!
=
HAL_
OK
)
{
/* Update
A
DC state machine to error */
/* Update D
A
C state machine to error */
hdac
->
State
=
HAL_DAC_STATE_ERROR
;
}
else
...
...
@@ -628,13 +642,13 @@ uint32_t HAL_DAC_GetValue(DAC_HandleTypeDef* hdac, uint32_t Channel)
*/
void
HAL_DAC_IRQHandler
(
DAC_HandleTypeDef
*
hdac
)
{
/* Check
Ov
errun flag */
/* Check
und
errun
channel 1
flag */
if
(
__HAL_DAC_GET_FLAG
(
hdac
,
DAC_FLAG_DMAUDR1
))
{
/* Change DAC state to error state */
hdac
->
State
=
HAL_DAC_STATE_ERROR
;
/* Set DAC error code to chanel1 DMA underrun error */
/* Set DAC error code to chan
n
el1 DMA underrun error */
hdac
->
ErrorCode
|=
HAL_DAC_ERROR_DMAUNDERRUNCH1
;
/* Clear the underrun flag */
...
...
@@ -646,7 +660,8 @@ void HAL_DAC_IRQHandler(DAC_HandleTypeDef* hdac)
/* Error callback */
HAL_DAC_DMAUnderrunCallbackCh1
(
hdac
);
}
else
/* Check underrun channel 2 flag */
if
(
__HAL_DAC_GET_FLAG
(
hdac
,
DAC_FLAG_DMAUDR2
))
{
/* Change DAC state to error state */
hdac
->
State
=
HAL_DAC_STATE_ERROR
;
...
...
@@ -673,6 +688,8 @@ void HAL_DAC_IRQHandler(DAC_HandleTypeDef* hdac)
*/
__weak
void
HAL_DAC_ConvCpltCallbackCh1
(
DAC_HandleTypeDef
*
hdac
)
{
/* Prevent unused argument(s) compilation warning */
UNUSED
(
hdac
);
/* NOTE : This function Should not be modified, when the callback is needed,
the HAL_DAC_ConvCpltCallback could be implemented in the user file
*/
...
...
@@ -686,6 +703,8 @@ __weak void HAL_DAC_ConvCpltCallbackCh1(DAC_HandleTypeDef* hdac)
*/
__weak
void
HAL_DAC_ConvHalfCpltCallbackCh1
(
DAC_HandleTypeDef
*
hdac
)
{
/* Prevent unused argument(s) compilation warning */
UNUSED
(
hdac
);
/* NOTE : This function Should not be modified, when the callback is needed,
the HAL_DAC_ConvHalfCpltCallbackCh1 could be implemented in the user file
*/
...
...
@@ -699,8 +718,10 @@ __weak void HAL_DAC_ConvHalfCpltCallbackCh1(DAC_HandleTypeDef* hdac)
*/
__weak
void
HAL_DAC_ErrorCallbackCh1
(
DAC_HandleTypeDef
*
hdac
)
{
/* Prevent unused argument(s) compilation warning */
UNUSED
(
hdac
);
/* NOTE : This function Should not be modified, when the callback is needed,
the HAL_DAC_ErrorCallback could be implemented in the user file
the HAL_DAC_ErrorCallback
Ch1
could be implemented in the user file
*/
}
...
...
@@ -712,6 +733,8 @@ __weak void HAL_DAC_ErrorCallbackCh1(DAC_HandleTypeDef *hdac)
*/
__weak
void
HAL_DAC_DMAUnderrunCallbackCh1
(
DAC_HandleTypeDef
*
hdac
)
{
/* Prevent unused argument(s) compilation warning */
UNUSED
(
hdac
);
/* NOTE : This function Should not be modified, when the callback is needed,
the HAL_DAC_DMAUnderrunCallbackCh1 could be implemented in the user file
*/
...
...
@@ -721,7 +744,7 @@ __weak void HAL_DAC_DMAUnderrunCallbackCh1(DAC_HandleTypeDef *hdac)
* @}
*/
/** @defgroup DAC_Group3 Peripheral Control functions
/** @defgroup DAC_
Exported_Functions_
Group3 Peripheral Control functions
* @brief Peripheral Control functions
*
@verbatim
...
...
@@ -749,7 +772,7 @@ __weak void HAL_DAC_DMAUnderrunCallbackCh1(DAC_HandleTypeDef *hdac)
*/
HAL_StatusTypeDef
HAL_DAC_ConfigChannel
(
DAC_HandleTypeDef
*
hdac
,
DAC_ChannelConfTypeDef
*
sConfig
,
uint32_t
Channel
)
{
uint32_t
tmpreg1
=
0
,
tmpreg2
=
0
;
uint32_t
tmpreg1
=
0
U
,
tmpreg2
=
0
U
;
/* Check the DAC parameters */
assert_param
(
IS_DAC_TRIGGER
(
sConfig
->
DAC_Trigger
));
...
...
@@ -763,7 +786,7 @@ HAL_StatusTypeDef HAL_DAC_ConfigChannel(DAC_HandleTypeDef* hdac, DAC_ChannelConf
hdac
->
State
=
HAL_DAC_STATE_BUSY
;
/* Get the DAC CR value */