mbed library sources

Dependents:   Encrypted my_mbed lklk CyaSSL_DTLS_Cellular ... more

Superseded

This library was superseded by mbed-dev - https://os.mbed.com/users/mbed_official/code/mbed-dev/.

Development branch of the mbed library sources. This library is kept in synch with the latest changes from the mbed SDK and it is not guaranteed to work.

If you are looking for a stable and tested release, please import one of the official mbed library releases:

Import librarymbed

The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Committer:
mbed_official
Date:
Mon Nov 03 10:45:07 2014 +0000
Revision:
382:ee426a420dbb
Parent:
targets/cmsis/TARGET_STM/TARGET_DISCO_L053C8/stm32l0xx_hal_dac_ex.c@376:cb4d9db17537
Child:
489:119543c9f674
Synchronized with git revision d54467eb07f62efd9ccdf44f1ede7fe1c1b0cf83

Full URL: https://github.com/mbedmicro/mbed/commit/d54467eb07f62efd9ccdf44f1ede7fe1c1b0cf83/

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 376:cb4d9db17537 1 /**
mbed_official 376:cb4d9db17537 2 ******************************************************************************
mbed_official 376:cb4d9db17537 3 * @file stm32l0xx_hal_dac_ex.c
mbed_official 376:cb4d9db17537 4 * @author MCD Application Team
mbed_official 376:cb4d9db17537 5 * @version V1.1.0
mbed_official 376:cb4d9db17537 6 * @date 18-June-2014
mbed_official 376:cb4d9db17537 7 * @brief DAC HAL module driver.
mbed_official 376:cb4d9db17537 8 *
mbed_official 376:cb4d9db17537 9 * This file provides firmware functions to manage the following
mbed_official 376:cb4d9db17537 10 * functionalities of the Digital to Analog Converter (DAC) peripheral:
mbed_official 376:cb4d9db17537 11 * + DAC wave generation
mbed_official 376:cb4d9db17537 12 *
mbed_official 376:cb4d9db17537 13 @verbatim
mbed_official 376:cb4d9db17537 14
mbed_official 376:cb4d9db17537 15 @endverbatim
mbed_official 376:cb4d9db17537 16 ******************************************************************************
mbed_official 376:cb4d9db17537 17 * @attention
mbed_official 376:cb4d9db17537 18 *
mbed_official 376:cb4d9db17537 19 * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
mbed_official 376:cb4d9db17537 20 *
mbed_official 376:cb4d9db17537 21 * Redistribution and use in source and binary forms, with or without modification,
mbed_official 376:cb4d9db17537 22 * are permitted provided that the following conditions are met:
mbed_official 376:cb4d9db17537 23 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 376:cb4d9db17537 24 * this list of conditions and the following disclaimer.
mbed_official 376:cb4d9db17537 25 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 376:cb4d9db17537 26 * this list of conditions and the following disclaimer in the documentation
mbed_official 376:cb4d9db17537 27 * and/or other materials provided with the distribution.
mbed_official 376:cb4d9db17537 28 * 3. Neither the name of STMicroelectronics nor the names of its contributors
mbed_official 376:cb4d9db17537 29 * may be used to endorse or promote products derived from this software
mbed_official 376:cb4d9db17537 30 * without specific prior written permission.
mbed_official 376:cb4d9db17537 31 *
mbed_official 376:cb4d9db17537 32 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 376:cb4d9db17537 33 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 376:cb4d9db17537 34 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 376:cb4d9db17537 35 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
mbed_official 376:cb4d9db17537 36 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
mbed_official 376:cb4d9db17537 37 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
mbed_official 376:cb4d9db17537 38 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
mbed_official 376:cb4d9db17537 39 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
mbed_official 376:cb4d9db17537 40 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
mbed_official 376:cb4d9db17537 41 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 376:cb4d9db17537 42 *
mbed_official 376:cb4d9db17537 43 ******************************************************************************
mbed_official 376:cb4d9db17537 44 */
mbed_official 376:cb4d9db17537 45
mbed_official 376:cb4d9db17537 46 /* Includes ------------------------------------------------------------------*/
mbed_official 376:cb4d9db17537 47 #include "stm32l0xx_hal.h"
mbed_official 376:cb4d9db17537 48
mbed_official 376:cb4d9db17537 49 /** @addtogroup STM32L0xx_HAL_Driver
mbed_official 376:cb4d9db17537 50 * @{
mbed_official 376:cb4d9db17537 51 */
mbed_official 376:cb4d9db17537 52
mbed_official 376:cb4d9db17537 53 /** @defgroup DACEx
mbed_official 376:cb4d9db17537 54 * @brief DAC driver modules
mbed_official 376:cb4d9db17537 55 * @{
mbed_official 376:cb4d9db17537 56 */
mbed_official 376:cb4d9db17537 57
mbed_official 376:cb4d9db17537 58 #ifdef HAL_DAC_MODULE_ENABLED
mbed_official 376:cb4d9db17537 59 #if !defined (STM32L051xx) && !defined (STM32L061xx)
mbed_official 376:cb4d9db17537 60
mbed_official 376:cb4d9db17537 61 /* Private typedef -----------------------------------------------------------*/
mbed_official 376:cb4d9db17537 62 /* Private define ------------------------------------------------------------*/
mbed_official 376:cb4d9db17537 63 /* Private macro -------------------------------------------------------------*/
mbed_official 376:cb4d9db17537 64 /* Private variables ---------------------------------------------------------*/
mbed_official 376:cb4d9db17537 65 /* Private function prototypes -----------------------------------------------*/
mbed_official 376:cb4d9db17537 66 /* Private functions ---------------------------------------------------------*/
mbed_official 376:cb4d9db17537 67
mbed_official 376:cb4d9db17537 68 /** @defgroup DACEx_Private_Functions
mbed_official 376:cb4d9db17537 69 * @{
mbed_official 376:cb4d9db17537 70 */
mbed_official 376:cb4d9db17537 71
mbed_official 376:cb4d9db17537 72
mbed_official 376:cb4d9db17537 73 /** @defgroup DACEx_Group Peripheral Control functions
mbed_official 376:cb4d9db17537 74 * @brief Peripheral Control functions
mbed_official 376:cb4d9db17537 75 *
mbed_official 376:cb4d9db17537 76 @verbatim
mbed_official 376:cb4d9db17537 77 ==============================================================================
mbed_official 376:cb4d9db17537 78 ##### Peripheral Control functions #####
mbed_official 376:cb4d9db17537 79 ==============================================================================
mbed_official 376:cb4d9db17537 80 [..] This section provides functions allowing to:
mbed_official 376:cb4d9db17537 81 (+) Configure Triangle wave generation.
mbed_official 376:cb4d9db17537 82 (+) Configure Noise wave generation.
mbed_official 376:cb4d9db17537 83
mbed_official 376:cb4d9db17537 84 @endverbatim
mbed_official 376:cb4d9db17537 85 * @{
mbed_official 376:cb4d9db17537 86 */
mbed_official 376:cb4d9db17537 87
mbed_official 376:cb4d9db17537 88 /**
mbed_official 376:cb4d9db17537 89 * @brief Enables or disables the selected DAC channel wave triangle generation.
mbed_official 376:cb4d9db17537 90 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 376:cb4d9db17537 91 * the configuration information for the specified DAC.
mbed_official 376:cb4d9db17537 92 * @param channel: The selected DAC channel.
mbed_official 376:cb4d9db17537 93 * This parameter can be one of the following values:
mbed_official 376:cb4d9db17537 94 * @arg DAC_CHANNEL_1: DAC Channel1 selected
mbed_official 376:cb4d9db17537 95 * @param Amplitude: Select max triangle amplitude.
mbed_official 376:cb4d9db17537 96 * This parameter can be one of the following values:
mbed_official 376:cb4d9db17537 97 * @arg DAC_TRIANGLEAMPLITUDE_1: Select max triangle amplitude of 1
mbed_official 376:cb4d9db17537 98 * @arg DAC_TRIANGLEAMPLITUDE_3: Select max triangle amplitude of 3
mbed_official 376:cb4d9db17537 99 * @arg DAC_TRIANGLEAMPLITUDE_7: Select max triangle amplitude of 7
mbed_official 376:cb4d9db17537 100 * @arg DAC_TRIANGLEAMPLITUDE_15: Select max triangle amplitude of 15
mbed_official 376:cb4d9db17537 101 * @arg DAC_TRIANGLEAMPLITUDE_31: Select max triangle amplitude of 31
mbed_official 376:cb4d9db17537 102 * @arg DAC_TRIANGLEAMPLITUDE_63: Select max triangle amplitude of 63
mbed_official 376:cb4d9db17537 103 * @arg DAC_TRIANGLEAMPLITUDE_127: Select max triangle amplitude of 127
mbed_official 376:cb4d9db17537 104 * @arg DAC_TRIANGLEAMPLITUDE_255: Select max triangle amplitude of 255
mbed_official 376:cb4d9db17537 105 * @arg DAC_TRIANGLEAMPLITUDE_511: Select max triangle amplitude of 511
mbed_official 376:cb4d9db17537 106 * @arg DAC_TRIANGLEAMPLITUDE_1023: Select max triangle amplitude of 1023
mbed_official 376:cb4d9db17537 107 * @arg DAC_TRIANGLEAMPLITUDE_2047: Select max triangle amplitude of 2047
mbed_official 376:cb4d9db17537 108 * @arg DAC_TRIANGLEAMPLITUDE_4095: Select max triangle amplitude of 4095
mbed_official 376:cb4d9db17537 109 * @retval HAL status
mbed_official 376:cb4d9db17537 110 */
mbed_official 376:cb4d9db17537 111 HAL_StatusTypeDef HAL_DACEx_TriangleWaveGenerate(DAC_HandleTypeDef* hdac, uint32_t channel, uint32_t Amplitude)
mbed_official 376:cb4d9db17537 112 {
mbed_official 376:cb4d9db17537 113 /* Check the parameters */
mbed_official 376:cb4d9db17537 114 assert_param(IS_DAC_CHANNEL(channel));
mbed_official 376:cb4d9db17537 115 assert_param(IS_DAC_LFSR_UNMASK_TRIANGLE_AMPLITUDE(Amplitude));
mbed_official 376:cb4d9db17537 116
mbed_official 376:cb4d9db17537 117 /* Process locked */
mbed_official 376:cb4d9db17537 118 __HAL_LOCK(hdac);
mbed_official 376:cb4d9db17537 119
mbed_official 376:cb4d9db17537 120 /* Change DAC state */
mbed_official 376:cb4d9db17537 121 hdac->State = HAL_DAC_STATE_BUSY;
mbed_official 376:cb4d9db17537 122
mbed_official 376:cb4d9db17537 123 /* Enable the selected wave generation for the selected DAC channel */
mbed_official 376:cb4d9db17537 124 hdac->Instance->CR |= (DAC_WAVEGENERATION_TRIANGLE | Amplitude) << channel;
mbed_official 376:cb4d9db17537 125
mbed_official 376:cb4d9db17537 126 /* Change DAC state */
mbed_official 376:cb4d9db17537 127 hdac->State = HAL_DAC_STATE_READY;
mbed_official 376:cb4d9db17537 128
mbed_official 376:cb4d9db17537 129 /* Process unlocked */
mbed_official 376:cb4d9db17537 130 __HAL_UNLOCK(hdac);
mbed_official 376:cb4d9db17537 131
mbed_official 376:cb4d9db17537 132 /* Return function status */
mbed_official 376:cb4d9db17537 133 return HAL_OK;
mbed_official 376:cb4d9db17537 134 }
mbed_official 376:cb4d9db17537 135
mbed_official 376:cb4d9db17537 136 /**
mbed_official 376:cb4d9db17537 137 * @brief Enables or disables the selected DAC channel wave noise generation.
mbed_official 376:cb4d9db17537 138 * @param channel: The selected DAC channel.
mbed_official 376:cb4d9db17537 139 * This parameter can be one of the following values:
mbed_official 376:cb4d9db17537 140 * @arg DAC_CHANNEL_1: DAC Channel1 selected
mbed_official 376:cb4d9db17537 141 * @param Amplitude: Unmask DAC channel LFSR for noise wave generation.
mbed_official 376:cb4d9db17537 142 * This parameter can be one of the following values:
mbed_official 376:cb4d9db17537 143 * @arg DAC_LFSRUNMASK_BIT0: Unmask DAC channel LFSR bit0 for noise wave generation
mbed_official 376:cb4d9db17537 144 * @arg DAC_LFSRUNMASK_BITS1_0: Unmask DAC channel LFSR bit[1:0] for noise wave generation
mbed_official 376:cb4d9db17537 145 * @arg DAC_LFSRUNMASK_BITS2_0: Unmask DAC channel LFSR bit[2:0] for noise wave generation
mbed_official 376:cb4d9db17537 146 * @arg DAC_LFSRUNMASK_BITS3_0: Unmask DAC channel LFSR bit[3:0] for noise wave generation
mbed_official 376:cb4d9db17537 147 * @arg DAC_LFSRUNMASK_BITS4_0: Unmask DAC channel LFSR bit[4:0] for noise wave generation
mbed_official 376:cb4d9db17537 148 * @arg DAC_LFSRUNMASK_BITS5_0: Unmask DAC channel LFSR bit[5:0] for noise wave generation
mbed_official 376:cb4d9db17537 149 * @arg DAC_LFSRUNMASK_BITS6_0: Unmask DAC channel LFSR bit[6:0] for noise wave generation
mbed_official 376:cb4d9db17537 150 * @arg DAC_LFSRUNMASK_BITS7_0: Unmask DAC channel LFSR bit[7:0] for noise wave generation
mbed_official 376:cb4d9db17537 151 * @arg DAC_LFSRUNMASK_BITS8_0: Unmask DAC channel LFSR bit[8:0] for noise wave generation
mbed_official 376:cb4d9db17537 152 * @arg DAC_LFSRUNMASK_BITS9_0: Unmask DAC channel LFSR bit[9:0] for noise wave generation
mbed_official 376:cb4d9db17537 153 * @arg DAC_LFSRUNMASK_BITS10_0: Unmask DAC channel LFSR bit[10:0] for noise wave generation
mbed_official 376:cb4d9db17537 154 * @arg DAC_LFSRUNMASK_BITS11_0: Unmask DAC channel LFSR bit[11:0] for noise wave generation
mbed_official 376:cb4d9db17537 155 * @retval HAL status
mbed_official 376:cb4d9db17537 156 */
mbed_official 376:cb4d9db17537 157 HAL_StatusTypeDef HAL_DACEx_NoiseWaveGenerate(DAC_HandleTypeDef* hdac, uint32_t channel, uint32_t Amplitude)
mbed_official 376:cb4d9db17537 158 {
mbed_official 376:cb4d9db17537 159 /* Check the parameters */
mbed_official 376:cb4d9db17537 160 assert_param(IS_DAC_CHANNEL(channel));
mbed_official 376:cb4d9db17537 161 assert_param(IS_DAC_LFSR_UNMASK_TRIANGLE_AMPLITUDE(Amplitude));
mbed_official 376:cb4d9db17537 162
mbed_official 376:cb4d9db17537 163 /* Process locked */
mbed_official 376:cb4d9db17537 164 __HAL_LOCK(hdac);
mbed_official 376:cb4d9db17537 165
mbed_official 376:cb4d9db17537 166 /* Change DAC state */
mbed_official 376:cb4d9db17537 167 hdac->State = HAL_DAC_STATE_BUSY;
mbed_official 376:cb4d9db17537 168
mbed_official 376:cb4d9db17537 169 /* Enable the selected wave generation for the selected DAC channel */
mbed_official 376:cb4d9db17537 170 hdac->Instance->CR |= (DAC_WAVEGENERATION_NOISE | Amplitude) << channel;
mbed_official 376:cb4d9db17537 171
mbed_official 376:cb4d9db17537 172 /* Change DAC state */
mbed_official 376:cb4d9db17537 173 hdac->State = HAL_DAC_STATE_READY;
mbed_official 376:cb4d9db17537 174
mbed_official 376:cb4d9db17537 175 /* Process unlocked */
mbed_official 376:cb4d9db17537 176 __HAL_UNLOCK(hdac);
mbed_official 376:cb4d9db17537 177
mbed_official 376:cb4d9db17537 178 /* Return function status */
mbed_official 376:cb4d9db17537 179 return HAL_OK;
mbed_official 376:cb4d9db17537 180 }
mbed_official 376:cb4d9db17537 181
mbed_official 376:cb4d9db17537 182
mbed_official 376:cb4d9db17537 183 /**
mbed_official 376:cb4d9db17537 184 * @}
mbed_official 376:cb4d9db17537 185 */
mbed_official 376:cb4d9db17537 186
mbed_official 376:cb4d9db17537 187 /**
mbed_official 376:cb4d9db17537 188 * @}
mbed_official 376:cb4d9db17537 189 */
mbed_official 376:cb4d9db17537 190
mbed_official 376:cb4d9db17537 191 #endif /* STM32L051xx && STM32L061xx*/
mbed_official 376:cb4d9db17537 192 #endif /* HAL_DAC_MODULE_ENABLED */
mbed_official 376:cb4d9db17537 193
mbed_official 376:cb4d9db17537 194 /**
mbed_official 376:cb4d9db17537 195 * @}
mbed_official 376:cb4d9db17537 196 */
mbed_official 376:cb4d9db17537 197
mbed_official 376:cb4d9db17537 198 /**
mbed_official 376:cb4d9db17537 199 * @}
mbed_official 376:cb4d9db17537 200 */
mbed_official 376:cb4d9db17537 201
mbed_official 376:cb4d9db17537 202 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/