Subversion Repositories LedShow

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. /**
  2.   ******************************************************************************
  3.   * @file    stm32f1xx_hal.h
  4.   * @author  MCD Application Team
  5.   * @brief   This file contains all the functions prototypes for the HAL
  6.   *          module driver.
  7.   ******************************************************************************
  8.   * @attention
  9.   *
  10.   * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
  11.   *
  12.   * Redistribution and use in source and binary forms, with or without modification,
  13.   * are permitted provided that the following conditions are met:
  14.   *   1. Redistributions of source code must retain the above copyright notice,
  15.   *      this list of conditions and the following disclaimer.
  16.   *   2. Redistributions in binary form must reproduce the above copyright notice,
  17.   *      this list of conditions and the following disclaimer in the documentation
  18.   *      and/or other materials provided with the distribution.
  19.   *   3. Neither the name of STMicroelectronics nor the names of its contributors
  20.   *      may be used to endorse or promote products derived from this software
  21.   *      without specific prior written permission.
  22.   *
  23.   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  24.   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  25.   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  26.   * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
  27.   * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  28.   * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
  29.   * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  30.   * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  31.   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  32.   * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  33.   *
  34.   ******************************************************************************
  35.   */
  36.  
  37. /* Define to prevent recursive inclusion -------------------------------------*/
  38. #ifndef __STM32F1xx_HAL_H
  39. #define __STM32F1xx_HAL_H
  40.  
  41. #ifdef __cplusplus
  42. extern "C" {
  43. #endif
  44.  
  45. /* Includes ------------------------------------------------------------------*/
  46. #include "stm32f1xx_hal_conf.h"
  47.  
  48. /** @addtogroup STM32F1xx_HAL_Driver
  49.   * @{
  50.   */
  51.  
  52. /** @addtogroup HAL
  53.   * @{
  54.   */
  55.  
  56. /* Exported constants --------------------------------------------------------*/
  57.  
  58. /** @defgroup HAL_Exported_Constants HAL Exported Constants
  59.   * @{
  60.   */
  61.  
  62. /** @defgroup HAL_TICK_FREQ Tick Frequency
  63.   * @{
  64.   */
  65. typedef enum
  66. {
  67.   HAL_TICK_FREQ_10HZ         = 100U,
  68.   HAL_TICK_FREQ_100HZ        = 10U,
  69.   HAL_TICK_FREQ_1KHZ         = 1U,
  70.   HAL_TICK_FREQ_DEFAULT      = HAL_TICK_FREQ_1KHZ
  71. } HAL_TickFreqTypeDef;
  72. /**
  73.   * @}
  74.   */
  75. /* Exported types ------------------------------------------------------------*/
  76. extern uint32_t uwTickPrio;
  77. extern HAL_TickFreqTypeDef uwTickFreq;
  78.  
  79. /**
  80.   * @}
  81.   */
  82. /* Exported macro ------------------------------------------------------------*/
  83. /** @defgroup HAL_Exported_Macros HAL Exported Macros
  84.   * @{
  85.   */
  86.  
  87. /** @defgroup DBGMCU_Freeze_Unfreeze Freeze Unfreeze Peripherals in Debug mode
  88.   * @brief   Freeze/Unfreeze Peripherals in Debug mode
  89.   * Note: On devices STM32F10xx8 and STM32F10xxB,
  90.   *                  STM32F101xC/D/E and STM32F103xC/D/E,
  91.   *                  STM32F101xF/G and STM32F103xF/G
  92.   *                  STM32F10xx4 and STM32F10xx6
  93.   *       Debug registers DBGMCU_IDCODE and DBGMCU_CR are accessible only in
  94.   *       debug mode (not accessible by the user software in normal mode).
  95.   *       Refer to errata sheet of these devices for more details.
  96.   * @{
  97.   */
  98.  
  99. /* Peripherals on APB1 */
  100. /**
  101.   * @brief  TIM2 Peripherals Debug mode
  102.   */
  103. #define __HAL_DBGMCU_FREEZE_TIM2()            SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM2_STOP)
  104. #define __HAL_DBGMCU_UNFREEZE_TIM2()          CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM2_STOP)
  105.  
  106. /**
  107.   * @brief  TIM3 Peripherals Debug mode
  108.   */
  109. #define __HAL_DBGMCU_FREEZE_TIM3()            SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM3_STOP)
  110. #define __HAL_DBGMCU_UNFREEZE_TIM3()          CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM3_STOP)
  111.  
  112. #if defined (DBGMCU_CR_DBG_TIM4_STOP)
  113. /**
  114.   * @brief  TIM4 Peripherals Debug mode
  115.   */
  116. #define __HAL_DBGMCU_FREEZE_TIM4()            SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM4_STOP)
  117. #define __HAL_DBGMCU_UNFREEZE_TIM4()          CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM4_STOP)
  118. #endif
  119.  
  120. #if defined (DBGMCU_CR_DBG_TIM5_STOP)
  121. /**
  122.   * @brief  TIM5 Peripherals Debug mode
  123.   */
  124. #define __HAL_DBGMCU_FREEZE_TIM5()            SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM5_STOP)
  125. #define __HAL_DBGMCU_UNFREEZE_TIM5()          CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM5_STOP)
  126. #endif
  127.  
  128. #if defined (DBGMCU_CR_DBG_TIM6_STOP)
  129. /**
  130.   * @brief  TIM6 Peripherals Debug mode
  131.   */
  132. #define __HAL_DBGMCU_FREEZE_TIM6()            SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM6_STOP)
  133. #define __HAL_DBGMCU_UNFREEZE_TIM6()          CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM6_STOP)
  134. #endif
  135.  
  136. #if defined (DBGMCU_CR_DBG_TIM7_STOP)
  137. /**
  138.   * @brief  TIM7 Peripherals Debug mode
  139.   */
  140. #define __HAL_DBGMCU_FREEZE_TIM7()            SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM7_STOP)
  141. #define __HAL_DBGMCU_UNFREEZE_TIM7()          CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM7_STOP)
  142. #endif
  143.  
  144. #if defined (DBGMCU_CR_DBG_TIM12_STOP)
  145. /**
  146.   * @brief  TIM12 Peripherals Debug mode
  147.   */
  148. #define __HAL_DBGMCU_FREEZE_TIM12()            SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM12_STOP)
  149. #define __HAL_DBGMCU_UNFREEZE_TIM12()          CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM12_STOP)
  150. #endif
  151.  
  152. #if defined (DBGMCU_CR_DBG_TIM13_STOP)
  153. /**
  154.   * @brief  TIM13 Peripherals Debug mode
  155.   */
  156. #define __HAL_DBGMCU_FREEZE_TIM13()            SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM13_STOP)
  157. #define __HAL_DBGMCU_UNFREEZE_TIM13()          CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM13_STOP)
  158. #endif
  159.  
  160. #if defined (DBGMCU_CR_DBG_TIM14_STOP)
  161. /**
  162.   * @brief  TIM14 Peripherals Debug mode
  163.   */
  164. #define __HAL_DBGMCU_FREEZE_TIM14()            SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM14_STOP)
  165. #define __HAL_DBGMCU_UNFREEZE_TIM14()          CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM14_STOP)
  166. #endif
  167.  
  168. /**
  169.   * @brief  WWDG Peripherals Debug mode
  170.   */
  171. #define __HAL_DBGMCU_FREEZE_WWDG()            SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_WWDG_STOP)
  172. #define __HAL_DBGMCU_UNFREEZE_WWDG()          CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_WWDG_STOP)
  173.  
  174. /**
  175.   * @brief  IWDG Peripherals Debug mode
  176.   */
  177. #define __HAL_DBGMCU_FREEZE_IWDG()            SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_IWDG_STOP)
  178. #define __HAL_DBGMCU_UNFREEZE_IWDG()          CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_IWDG_STOP)
  179.  
  180. /**
  181.   * @brief  I2C1 Peripherals Debug mode
  182.   */
  183. #define __HAL_DBGMCU_FREEZE_I2C1_TIMEOUT()    SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_I2C1_SMBUS_TIMEOUT)
  184. #define __HAL_DBGMCU_UNFREEZE_I2C1_TIMEOUT()  CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_I2C1_SMBUS_TIMEOUT)
  185.  
  186. #if defined (DBGMCU_CR_DBG_I2C2_SMBUS_TIMEOUT)
  187. /**
  188.   * @brief  I2C2 Peripherals Debug mode
  189.   */
  190. #define __HAL_DBGMCU_FREEZE_I2C2_TIMEOUT()    SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_I2C2_SMBUS_TIMEOUT)
  191. #define __HAL_DBGMCU_UNFREEZE_I2C2_TIMEOUT()  CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_I2C2_SMBUS_TIMEOUT)
  192. #endif
  193.  
  194. #if defined (DBGMCU_CR_DBG_CAN1_STOP)
  195. /**
  196.   * @brief  CAN1 Peripherals Debug mode
  197.   */
  198. #define __HAL_DBGMCU_FREEZE_CAN1()            SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_CAN1_STOP)
  199. #define __HAL_DBGMCU_UNFREEZE_CAN1()          CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_CAN1_STOP)
  200. #endif
  201.  
  202. #if defined (DBGMCU_CR_DBG_CAN2_STOP)
  203. /**
  204.   * @brief  CAN2 Peripherals Debug mode
  205.   */
  206. #define __HAL_DBGMCU_FREEZE_CAN2()            SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_CAN2_STOP)
  207. #define __HAL_DBGMCU_UNFREEZE_CAN2()          CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_CAN2_STOP)
  208. #endif
  209.  
  210. /* Peripherals on APB2 */
  211. #if defined (DBGMCU_CR_DBG_TIM1_STOP)
  212. /**
  213.   * @brief  TIM1 Peripherals Debug mode
  214.   */
  215. #define __HAL_DBGMCU_FREEZE_TIM1()            SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM1_STOP)
  216. #define __HAL_DBGMCU_UNFREEZE_TIM1()          CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM1_STOP)
  217. #endif
  218.  
  219. #if defined (DBGMCU_CR_DBG_TIM8_STOP)
  220. /**
  221.   * @brief  TIM8 Peripherals Debug mode
  222.   */
  223. #define __HAL_DBGMCU_FREEZE_TIM8()            SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM8_STOP)
  224. #define __HAL_DBGMCU_UNFREEZE_TIM8()          CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM8_STOP)
  225. #endif
  226.  
  227. #if defined (DBGMCU_CR_DBG_TIM9_STOP)
  228. /**
  229.   * @brief  TIM9 Peripherals Debug mode
  230.   */
  231. #define __HAL_DBGMCU_FREEZE_TIM9()            SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM9_STOP)
  232. #define __HAL_DBGMCU_UNFREEZE_TIM9()          CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM9_STOP)
  233. #endif
  234.  
  235. #if defined (DBGMCU_CR_DBG_TIM10_STOP)
  236. /**
  237.   * @brief  TIM10 Peripherals Debug mode
  238.   */
  239. #define __HAL_DBGMCU_FREEZE_TIM10()            SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM10_STOP)
  240. #define __HAL_DBGMCU_UNFREEZE_TIM10()          CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM10_STOP)
  241. #endif
  242.  
  243. #if defined (DBGMCU_CR_DBG_TIM11_STOP)
  244. /**
  245.   * @brief  TIM11 Peripherals Debug mode
  246.   */
  247. #define __HAL_DBGMCU_FREEZE_TIM11()            SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM11_STOP)
  248. #define __HAL_DBGMCU_UNFREEZE_TIM11()          CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM11_STOP)
  249. #endif
  250.  
  251.  
  252. #if defined (DBGMCU_CR_DBG_TIM15_STOP)
  253. /**
  254.   * @brief  TIM15 Peripherals Debug mode
  255.   */
  256. #define __HAL_DBGMCU_FREEZE_TIM15()            SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM15_STOP)
  257. #define __HAL_DBGMCU_UNFREEZE_TIM15()          CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM15_STOP)
  258. #endif
  259.  
  260. #if defined (DBGMCU_CR_DBG_TIM16_STOP)
  261. /**
  262.   * @brief  TIM16 Peripherals Debug mode
  263.   */
  264. #define __HAL_DBGMCU_FREEZE_TIM16()            SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM16_STOP)
  265. #define __HAL_DBGMCU_UNFREEZE_TIM16()          CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM16_STOP)
  266. #endif
  267.  
  268. #if defined (DBGMCU_CR_DBG_TIM17_STOP)
  269. /**
  270.   * @brief  TIM17 Peripherals Debug mode
  271.   */
  272. #define __HAL_DBGMCU_FREEZE_TIM17()            SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM17_STOP)
  273. #define __HAL_DBGMCU_UNFREEZE_TIM17()          CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_TIM17_STOP)
  274. #endif
  275.  
  276. /**
  277.   * @}
  278.   */
  279.  
  280. /** @defgroup HAL_Private_Macros HAL Private Macros
  281.   * @{
  282.   */
  283. #define IS_TICKFREQ(FREQ) (((FREQ) == HAL_TICK_FREQ_10HZ)  || \
  284.                            ((FREQ) == HAL_TICK_FREQ_100HZ) || \
  285.                            ((FREQ) == HAL_TICK_FREQ_1KHZ))
  286. /**
  287.   * @}
  288.   */
  289.  
  290. /* Exported functions --------------------------------------------------------*/
  291. /** @addtogroup HAL_Exported_Functions
  292.   * @{
  293.   */
  294. /** @addtogroup HAL_Exported_Functions_Group1
  295.   * @{
  296.   */
  297. /* Initialization and de-initialization functions  ******************************/
  298. HAL_StatusTypeDef HAL_Init(void);
  299. HAL_StatusTypeDef HAL_DeInit(void);
  300. void HAL_MspInit(void);
  301. void HAL_MspDeInit(void);
  302. HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority);
  303. /**
  304.   * @}
  305.   */
  306.  
  307. /** @addtogroup HAL_Exported_Functions_Group2
  308.   * @{
  309.   */
  310. /* Peripheral Control functions  ************************************************/
  311. void HAL_IncTick(void);
  312. void HAL_Delay(uint32_t Delay);
  313. uint32_t HAL_GetTick(void);
  314. uint32_t HAL_GetTickPrio(void);
  315. HAL_StatusTypeDef HAL_SetTickFreq(HAL_TickFreqTypeDef Freq);
  316. HAL_TickFreqTypeDef HAL_GetTickFreq(void);
  317. void HAL_SuspendTick(void);
  318. void HAL_ResumeTick(void);
  319. uint32_t HAL_GetHalVersion(void);
  320. uint32_t HAL_GetREVID(void);
  321. uint32_t HAL_GetDEVID(void);
  322. void HAL_DBGMCU_EnableDBGSleepMode(void);
  323. void HAL_DBGMCU_DisableDBGSleepMode(void);
  324. void HAL_DBGMCU_EnableDBGStopMode(void);
  325. void HAL_DBGMCU_DisableDBGStopMode(void);
  326. void HAL_DBGMCU_EnableDBGStandbyMode(void);
  327. void HAL_DBGMCU_DisableDBGStandbyMode(void);
  328. void HAL_GetUID(uint32_t *UID);
  329. /**
  330.   * @}
  331.   */
  332.  
  333. /**
  334.   * @}
  335.   */
  336. /* Private types -------------------------------------------------------------*/
  337. /* Private variables ---------------------------------------------------------*/
  338. /** @defgroup HAL_Private_Variables HAL Private Variables
  339.   * @{
  340.   */
  341. /**
  342.   * @}
  343.   */
  344. /* Private constants ---------------------------------------------------------*/
  345. /** @defgroup HAL_Private_Constants HAL Private Constants
  346.   * @{
  347.   */
  348. /**
  349.   * @}
  350.   */
  351. /* Private macros ------------------------------------------------------------*/
  352. /* Private functions ---------------------------------------------------------*/
  353. /**
  354.   * @}
  355.   */
  356.  
  357. /**
  358.   * @}
  359.   */
  360.  
  361. #ifdef __cplusplus
  362. }
  363. #endif
  364.  
  365. #endif /* __STM32F1xx_HAL_H */
  366.  
  367. /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
  368.