mbed SDK library sources

Fork of mbed-src by mbed official

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 Feb 03 09:30:05 2014 +0000
Revision:
84:f54042cbc282
Parent:
70:c1fbde68b492
Synchronized with git revision bbbd8699601c42149ccf0c37bc42bb6856ccc4c6

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

[NUCLEO_L152RE/F030_R8] SPI, I2C, Ticker, PWM updates

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 52:a51c77007319 1 /**
mbed_official 52:a51c77007319 2 ******************************************************************************
mbed_official 52:a51c77007319 3 * @file stm32f10x_iwdg.c
mbed_official 52:a51c77007319 4 * @author MCD Application Team
mbed_official 84:f54042cbc282 5 * @version V3.6.1
mbed_official 84:f54042cbc282 6 * @date 05-March-2012
mbed_official 52:a51c77007319 7 * @brief This file provides all the IWDG firmware functions.
mbed_official 70:c1fbde68b492 8 *******************************************************************************
mbed_official 70:c1fbde68b492 9 * Copyright (c) 2014, STMicroelectronics
mbed_official 70:c1fbde68b492 10 * All rights reserved.
mbed_official 70:c1fbde68b492 11 *
mbed_official 70:c1fbde68b492 12 * Redistribution and use in source and binary forms, with or without
mbed_official 70:c1fbde68b492 13 * modification, are permitted provided that the following conditions are met:
mbed_official 70:c1fbde68b492 14 *
mbed_official 70:c1fbde68b492 15 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 70:c1fbde68b492 16 * this list of conditions and the following disclaimer.
mbed_official 70:c1fbde68b492 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 70:c1fbde68b492 18 * this list of conditions and the following disclaimer in the documentation
mbed_official 70:c1fbde68b492 19 * and/or other materials provided with the distribution.
mbed_official 70:c1fbde68b492 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
mbed_official 70:c1fbde68b492 21 * may be used to endorse or promote products derived from this software
mbed_official 70:c1fbde68b492 22 * without specific prior written permission.
mbed_official 70:c1fbde68b492 23 *
mbed_official 70:c1fbde68b492 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 70:c1fbde68b492 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 70:c1fbde68b492 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 70:c1fbde68b492 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
mbed_official 70:c1fbde68b492 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
mbed_official 70:c1fbde68b492 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
mbed_official 70:c1fbde68b492 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
mbed_official 70:c1fbde68b492 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
mbed_official 70:c1fbde68b492 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
mbed_official 70:c1fbde68b492 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 70:c1fbde68b492 34 *******************************************************************************
mbed_official 70:c1fbde68b492 35 */
mbed_official 52:a51c77007319 36
mbed_official 52:a51c77007319 37 /* Includes ------------------------------------------------------------------*/
mbed_official 52:a51c77007319 38 #include "stm32f10x_iwdg.h"
mbed_official 52:a51c77007319 39
mbed_official 52:a51c77007319 40 /** @addtogroup STM32F10x_StdPeriph_Driver
mbed_official 52:a51c77007319 41 * @{
mbed_official 52:a51c77007319 42 */
mbed_official 52:a51c77007319 43
mbed_official 52:a51c77007319 44 /** @defgroup IWDG
mbed_official 52:a51c77007319 45 * @brief IWDG driver modules
mbed_official 52:a51c77007319 46 * @{
mbed_official 52:a51c77007319 47 */
mbed_official 52:a51c77007319 48
mbed_official 52:a51c77007319 49 /** @defgroup IWDG_Private_TypesDefinitions
mbed_official 52:a51c77007319 50 * @{
mbed_official 52:a51c77007319 51 */
mbed_official 52:a51c77007319 52
mbed_official 52:a51c77007319 53 /**
mbed_official 52:a51c77007319 54 * @}
mbed_official 52:a51c77007319 55 */
mbed_official 52:a51c77007319 56
mbed_official 52:a51c77007319 57 /** @defgroup IWDG_Private_Defines
mbed_official 52:a51c77007319 58 * @{
mbed_official 52:a51c77007319 59 */
mbed_official 52:a51c77007319 60
mbed_official 52:a51c77007319 61 /* ---------------------- IWDG registers bit mask ----------------------------*/
mbed_official 52:a51c77007319 62
mbed_official 52:a51c77007319 63 /* KR register bit mask */
mbed_official 52:a51c77007319 64 #define KR_KEY_Reload ((uint16_t)0xAAAA)
mbed_official 52:a51c77007319 65 #define KR_KEY_Enable ((uint16_t)0xCCCC)
mbed_official 52:a51c77007319 66
mbed_official 52:a51c77007319 67 /**
mbed_official 52:a51c77007319 68 * @}
mbed_official 52:a51c77007319 69 */
mbed_official 52:a51c77007319 70
mbed_official 52:a51c77007319 71 /** @defgroup IWDG_Private_Macros
mbed_official 52:a51c77007319 72 * @{
mbed_official 52:a51c77007319 73 */
mbed_official 52:a51c77007319 74
mbed_official 52:a51c77007319 75 /**
mbed_official 52:a51c77007319 76 * @}
mbed_official 52:a51c77007319 77 */
mbed_official 52:a51c77007319 78
mbed_official 52:a51c77007319 79 /** @defgroup IWDG_Private_Variables
mbed_official 52:a51c77007319 80 * @{
mbed_official 52:a51c77007319 81 */
mbed_official 52:a51c77007319 82
mbed_official 52:a51c77007319 83 /**
mbed_official 52:a51c77007319 84 * @}
mbed_official 52:a51c77007319 85 */
mbed_official 52:a51c77007319 86
mbed_official 52:a51c77007319 87 /** @defgroup IWDG_Private_FunctionPrototypes
mbed_official 52:a51c77007319 88 * @{
mbed_official 52:a51c77007319 89 */
mbed_official 52:a51c77007319 90
mbed_official 52:a51c77007319 91 /**
mbed_official 52:a51c77007319 92 * @}
mbed_official 52:a51c77007319 93 */
mbed_official 52:a51c77007319 94
mbed_official 52:a51c77007319 95 /** @defgroup IWDG_Private_Functions
mbed_official 52:a51c77007319 96 * @{
mbed_official 52:a51c77007319 97 */
mbed_official 52:a51c77007319 98
mbed_official 52:a51c77007319 99 /**
mbed_official 52:a51c77007319 100 * @brief Enables or disables write access to IWDG_PR and IWDG_RLR registers.
mbed_official 52:a51c77007319 101 * @param IWDG_WriteAccess: new state of write access to IWDG_PR and IWDG_RLR registers.
mbed_official 52:a51c77007319 102 * This parameter can be one of the following values:
mbed_official 52:a51c77007319 103 * @arg IWDG_WriteAccess_Enable: Enable write access to IWDG_PR and IWDG_RLR registers
mbed_official 52:a51c77007319 104 * @arg IWDG_WriteAccess_Disable: Disable write access to IWDG_PR and IWDG_RLR registers
mbed_official 52:a51c77007319 105 * @retval None
mbed_official 52:a51c77007319 106 */
mbed_official 52:a51c77007319 107 void IWDG_WriteAccessCmd(uint16_t IWDG_WriteAccess)
mbed_official 52:a51c77007319 108 {
mbed_official 52:a51c77007319 109 /* Check the parameters */
mbed_official 52:a51c77007319 110 assert_param(IS_IWDG_WRITE_ACCESS(IWDG_WriteAccess));
mbed_official 52:a51c77007319 111 IWDG->KR = IWDG_WriteAccess;
mbed_official 52:a51c77007319 112 }
mbed_official 52:a51c77007319 113
mbed_official 52:a51c77007319 114 /**
mbed_official 52:a51c77007319 115 * @brief Sets IWDG Prescaler value.
mbed_official 52:a51c77007319 116 * @param IWDG_Prescaler: specifies the IWDG Prescaler value.
mbed_official 52:a51c77007319 117 * This parameter can be one of the following values:
mbed_official 52:a51c77007319 118 * @arg IWDG_Prescaler_4: IWDG prescaler set to 4
mbed_official 52:a51c77007319 119 * @arg IWDG_Prescaler_8: IWDG prescaler set to 8
mbed_official 52:a51c77007319 120 * @arg IWDG_Prescaler_16: IWDG prescaler set to 16
mbed_official 52:a51c77007319 121 * @arg IWDG_Prescaler_32: IWDG prescaler set to 32
mbed_official 52:a51c77007319 122 * @arg IWDG_Prescaler_64: IWDG prescaler set to 64
mbed_official 52:a51c77007319 123 * @arg IWDG_Prescaler_128: IWDG prescaler set to 128
mbed_official 52:a51c77007319 124 * @arg IWDG_Prescaler_256: IWDG prescaler set to 256
mbed_official 52:a51c77007319 125 * @retval None
mbed_official 52:a51c77007319 126 */
mbed_official 52:a51c77007319 127 void IWDG_SetPrescaler(uint8_t IWDG_Prescaler)
mbed_official 52:a51c77007319 128 {
mbed_official 52:a51c77007319 129 /* Check the parameters */
mbed_official 52:a51c77007319 130 assert_param(IS_IWDG_PRESCALER(IWDG_Prescaler));
mbed_official 52:a51c77007319 131 IWDG->PR = IWDG_Prescaler;
mbed_official 52:a51c77007319 132 }
mbed_official 52:a51c77007319 133
mbed_official 52:a51c77007319 134 /**
mbed_official 52:a51c77007319 135 * @brief Sets IWDG Reload value.
mbed_official 52:a51c77007319 136 * @param Reload: specifies the IWDG Reload value.
mbed_official 52:a51c77007319 137 * This parameter must be a number between 0 and 0x0FFF.
mbed_official 52:a51c77007319 138 * @retval None
mbed_official 52:a51c77007319 139 */
mbed_official 52:a51c77007319 140 void IWDG_SetReload(uint16_t Reload)
mbed_official 52:a51c77007319 141 {
mbed_official 52:a51c77007319 142 /* Check the parameters */
mbed_official 52:a51c77007319 143 assert_param(IS_IWDG_RELOAD(Reload));
mbed_official 52:a51c77007319 144 IWDG->RLR = Reload;
mbed_official 52:a51c77007319 145 }
mbed_official 52:a51c77007319 146
mbed_official 52:a51c77007319 147 /**
mbed_official 52:a51c77007319 148 * @brief Reloads IWDG counter with value defined in the reload register
mbed_official 52:a51c77007319 149 * (write access to IWDG_PR and IWDG_RLR registers disabled).
mbed_official 52:a51c77007319 150 * @param None
mbed_official 52:a51c77007319 151 * @retval None
mbed_official 52:a51c77007319 152 */
mbed_official 52:a51c77007319 153 void IWDG_ReloadCounter(void)
mbed_official 52:a51c77007319 154 {
mbed_official 52:a51c77007319 155 IWDG->KR = KR_KEY_Reload;
mbed_official 52:a51c77007319 156 }
mbed_official 52:a51c77007319 157
mbed_official 52:a51c77007319 158 /**
mbed_official 52:a51c77007319 159 * @brief Enables IWDG (write access to IWDG_PR and IWDG_RLR registers disabled).
mbed_official 52:a51c77007319 160 * @param None
mbed_official 52:a51c77007319 161 * @retval None
mbed_official 52:a51c77007319 162 */
mbed_official 52:a51c77007319 163 void IWDG_Enable(void)
mbed_official 52:a51c77007319 164 {
mbed_official 52:a51c77007319 165 IWDG->KR = KR_KEY_Enable;
mbed_official 52:a51c77007319 166 }
mbed_official 52:a51c77007319 167
mbed_official 52:a51c77007319 168 /**
mbed_official 52:a51c77007319 169 * @brief Checks whether the specified IWDG flag is set or not.
mbed_official 52:a51c77007319 170 * @param IWDG_FLAG: specifies the flag to check.
mbed_official 52:a51c77007319 171 * This parameter can be one of the following values:
mbed_official 52:a51c77007319 172 * @arg IWDG_FLAG_PVU: Prescaler Value Update on going
mbed_official 52:a51c77007319 173 * @arg IWDG_FLAG_RVU: Reload Value Update on going
mbed_official 52:a51c77007319 174 * @retval The new state of IWDG_FLAG (SET or RESET).
mbed_official 52:a51c77007319 175 */
mbed_official 52:a51c77007319 176 FlagStatus IWDG_GetFlagStatus(uint16_t IWDG_FLAG)
mbed_official 52:a51c77007319 177 {
mbed_official 52:a51c77007319 178 FlagStatus bitstatus = RESET;
mbed_official 52:a51c77007319 179 /* Check the parameters */
mbed_official 52:a51c77007319 180 assert_param(IS_IWDG_FLAG(IWDG_FLAG));
mbed_official 52:a51c77007319 181 if ((IWDG->SR & IWDG_FLAG) != (uint32_t)RESET)
mbed_official 52:a51c77007319 182 {
mbed_official 52:a51c77007319 183 bitstatus = SET;
mbed_official 52:a51c77007319 184 }
mbed_official 52:a51c77007319 185 else
mbed_official 52:a51c77007319 186 {
mbed_official 52:a51c77007319 187 bitstatus = RESET;
mbed_official 52:a51c77007319 188 }
mbed_official 52:a51c77007319 189 /* Return the flag status */
mbed_official 52:a51c77007319 190 return bitstatus;
mbed_official 52:a51c77007319 191 }
mbed_official 52:a51c77007319 192
mbed_official 52:a51c77007319 193 /**
mbed_official 52:a51c77007319 194 * @}
mbed_official 52:a51c77007319 195 */
mbed_official 52:a51c77007319 196
mbed_official 52:a51c77007319 197 /**
mbed_official 52:a51c77007319 198 * @}
mbed_official 52:a51c77007319 199 */
mbed_official 52:a51c77007319 200
mbed_official 52:a51c77007319 201 /**
mbed_official 52:a51c77007319 202 * @}
mbed_official 52:a51c77007319 203 */
mbed_official 52:a51c77007319 204
mbed_official 84:f54042cbc282 205 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/