stm32f10x_iwdg.c
上传用户:yj_qqy
上传日期:2017-01-28
资源大小:2911k
文件大小:6k
源码类别:

uCOS

开发平台:

C/C++

  1. /******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
  2. * File Name          : stm32f10x_iwdg.c
  3. * Author             : MCD Application Team
  4. * Version            : V2.0.2
  5. * Date               : 07/11/2008
  6. * Description        : This file provides all the IWDG firmware functions.
  7. ********************************************************************************
  8. * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
  9. * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
  10. * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
  11. * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
  12. * CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
  13. * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
  14. *******************************************************************************/
  15. /* Includes ------------------------------------------------------------------*/
  16. #include "stm32f10x_iwdg.h"
  17. /* Private typedef -----------------------------------------------------------*/
  18. /* Private define ------------------------------------------------------------*/
  19. /* ---------------------- IWDG registers bit mask ------------------------ */
  20. /* KR register bit mask */
  21. #define KR_KEY_Reload    ((u16)0xAAAA)
  22. #define KR_KEY_Enable    ((u16)0xCCCC)
  23. /* Private macro -------------------------------------------------------------*/
  24. /* Private variables ---------------------------------------------------------*/
  25. /* Private function prototypes -----------------------------------------------*/
  26. /* Private functions ---------------------------------------------------------*/
  27. /*******************************************************************************
  28. * Function Name  : IWDG_WriteAccessCmd
  29. * Description    : Enables or disables write access to IWDG_PR and IWDG_RLR
  30. *                  registers.
  31. * Input          : - IWDG_WriteAccess: new state of write access to IWDG_PR and
  32. *                    IWDG_RLR registers.
  33. *                    This parameter can be one of the following values:
  34. *                       - IWDG_WriteAccess_Enable: Enable write access to 
  35. *                         IWDG_PR and IWDG_RLR registers
  36. *                       - IWDG_WriteAccess_Disable: Disable write access to
  37. *                         IWDG_PR and IWDG_RLR registers
  38. * Output         : None
  39. * Return         : None
  40. *******************************************************************************/
  41. void IWDG_WriteAccessCmd(u16 IWDG_WriteAccess)
  42. {
  43.   /* Check the parameters */
  44.   assert_param(IS_IWDG_WRITE_ACCESS(IWDG_WriteAccess));
  45.   IWDG->KR = IWDG_WriteAccess;
  46. }
  47. /*******************************************************************************
  48. * Function Name  : IWDG_SetPrescaler
  49. * Description    : Sets IWDG Prescaler value.
  50. * Input          : - IWDG_Prescaler: specifies the IWDG Prescaler value.
  51. *                    This parameter can be one of the following values:
  52. *                       - IWDG_Prescaler_4: IWDG prescaler set to 4
  53. *                       - IWDG_Prescaler_8: IWDG prescaler set to 8
  54. *                       - IWDG_Prescaler_16: IWDG prescaler set to 16
  55. *                       - IWDG_Prescaler_32: IWDG prescaler set to 32
  56. *                       - IWDG_Prescaler_64: IWDG prescaler set to 64
  57. *                       - IWDG_Prescaler_128: IWDG prescaler set to 128
  58. *                       - IWDG_Prescaler_256: IWDG prescaler set to 256
  59. * Output         : None
  60. * Return         : None
  61. *******************************************************************************/
  62. void IWDG_SetPrescaler(u8 IWDG_Prescaler)
  63. {
  64.   /* Check the parameters */
  65.   assert_param(IS_IWDG_PRESCALER(IWDG_Prescaler));
  66.   IWDG->PR = IWDG_Prescaler;
  67. }
  68. /*******************************************************************************
  69. * Function Name  : IWDG_SetReload
  70. * Description    : Sets IWDG Reload value.
  71. * Input          : - Reload: specifies the IWDG Reload value.
  72. *                    This parameter must be a number between 0 and 0x0FFF.
  73. * Output         : None
  74. * Return         : None
  75. *******************************************************************************/
  76. void IWDG_SetReload(u16 Reload)
  77. {
  78.   /* Check the parameters */
  79.   assert_param(IS_IWDG_RELOAD(Reload));
  80.   IWDG->RLR = Reload;
  81. }
  82. /*******************************************************************************
  83. * Function Name  : IWDG_ReloadCounter
  84. * Description    : Reloads IWDG counter with value defined in the reload register
  85. *                  (write access to IWDG_PR and IWDG_RLR registers disabled).
  86. * Input          : None
  87. * Output         : None
  88. * Return         : None
  89. *******************************************************************************/
  90. void IWDG_ReloadCounter(void)
  91. {
  92.   IWDG->KR = KR_KEY_Reload;
  93. }
  94. /*******************************************************************************
  95. * Function Name  : IWDG_Enable
  96. * Description    : Enables IWDG (write access to IWDG_PR and IWDG_RLR registers
  97. *                  disabled).
  98. * Input          : None
  99. * Output         : None
  100. * Return         : None
  101. *******************************************************************************/
  102. void IWDG_Enable(void)
  103. {
  104.   IWDG->KR = KR_KEY_Enable;
  105. }
  106. /*******************************************************************************
  107. * Function Name  : IWDG_GetFlagStatus
  108. * Description    : Checks whether the specified IWDG flag is set or not.
  109. * Input          : - IWDG_FLAG: specifies the flag to check.
  110. *                    This parameter can be one of the following values:
  111. *                       - IWDG_FLAG_PVU: Prescaler Value Update on going
  112. *                       - IWDG_FLAG_RVU: Reload Value Update on going
  113. * Output         : None
  114. * Return         : The new state of IWDG_FLAG (SET or RESET).
  115. *******************************************************************************/
  116. FlagStatus IWDG_GetFlagStatus(u16 IWDG_FLAG)
  117. {
  118.   FlagStatus bitstatus = RESET;
  119.   /* Check the parameters */
  120.   assert_param(IS_IWDG_FLAG(IWDG_FLAG));
  121.   if ((IWDG->SR & IWDG_FLAG) != (u32)RESET)
  122.   {
  123.     bitstatus = SET;
  124.   }
  125.   else
  126.   {
  127.     bitstatus = RESET;
  128.   }
  129.   /* Return the flag status */
  130.   return bitstatus;
  131. }
  132. /******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/