📄 stm32f10x_nvic.h
字号:
/******************** (C) COPYRIGHT 2007 STMicroelectronics ********************
* File Name : stm32f10x_nvic.h
* Author : MCD Application Team
* Date First Issued : 09/29/2006
* Description : This file contains all the functions prototypes for the
* NVIC firmware library.
********************************************************************************
* History:
* 02/05/2007: V0.1
* 09/29/2006: V0.01
********************************************************************************
* THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
* CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
*******************************************************************************/
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __STM32F10x_NVIC_H
#define __STM32F10x_NVIC_H
/* Includes ------------------------------------------------------------------*/
#include "stm32f10x_map.h"
/* Exported types ------------------------------------------------------------*/
/* NVIC Init Structure definition */
typedef struct
{
u8 NVIC_IRQChannel;
u8 NVIC_IRQChannelPreemptionPriority;
u8 NVIC_IRQChannelSubPriority;
FunctionalState NVIC_IRQChannelCmd;
} NVIC_InitTypeDef;
/* Exported constants --------------------------------------------------------*/
/* IRQ Channels */
#define WWDG_IRQChannel ((u8)0x00) /* Window WatchDog IRQ Channel */
#define PVD_IRQChannel ((u8)0x01) /* Power Voltage Detector IRQ Channel */
#define TAMPER_IRQChannel ((u8)0x02) /* Tamper pin IRQ Channel */
#define RTC_IRQChannel ((u8)0x03) /* RTC IRQ Channel */
#define FLASH_IRQChannel ((u8)0x04) /* Flash interface IRQ Channel */
#define RCC_IRQChannel ((u8)0x05) /* Reset Clock Controller IRQ Channel */
#define EXTI0_IRQChannel ((u8)0x06) /* External Line 0 IRQ Channel */
#define EXTI1_IRQChannel ((u8)0x07) /* External Line 1 IRQ Channel */
#define EXTI2_IRQChannel ((u8)0x08) /* External Line 2 IRQ Channel */
#define EXTI3_IRQChannel ((u8)0x09) /* External Line 3 IRQ Channel */
#define EXTI4_IRQChannel ((u8)0x0A) /* External Line 4 IRQ Channel */
#define DMAChannel1_IRQChannel ((u8)0x0B) /* DMA global interrupt Channel 1 */
#define DMAChannel2_IRQChannel ((u8)0x0C) /* DMA global interrupt Channel 2 */
#define DMAChannel3_IRQChannel ((u8)0x0D) /* DMA global interrupt Channel 3 */
#define DMAChannel4_IRQChannel ((u8)0x0E) /* DMA global interrupt Channel 4 */
#define DMAChannel5_IRQChannel ((u8)0x0F) /* DMA global interrupt Channel 5 */
#define DMAChannel6_IRQChannel ((u8)0x10) /* DMA global interrupt Channel 6 */
#define DMAChannel7_IRQChannel ((u8)0x11) /* DMA global interrupt Channel 7 */
#define ADC_IRQChannel ((u8)0x12) /* ADC Global IRQ Channel */
#define USB_HP_CAN_TX_IRQChannel ((u8)0x13) /* USB High Priority or CAN TX IRQ Channel */
#define USB_LP_CAN_RX0_IRQChannel ((u8)0x14) /* USB Low Priority or CAN RX0 IRQ Channel */
#define CAN_RX1_IRQChannel ((u8)0x15) /* CAN RX1 IRQ Channel */
#define CAN_SCE_IRQChannel ((u8)0x16) /* CAN SCE IRQ Channel */
#define EXTI9_5_IRQChannel ((u8)0x17) /* External Line[9:5] IRQ Channel */
#define TIM1_BRK_IRQChannel ((u8)0x18) /* TIMER1 Break IRQ Channel */
#define TIM1_UP_IRQChannel ((u8)0x19) /* TIMER1 UP IRQ Channel */
#define TIM1_TRG_CCUP_IRQChannel ((u8)0x1A) /* TIMER1 Trigger and CC Update IRQ Channel */
#define TIM1_CC_IRQChannel ((u8)0x1B) /* TIMER1 Capture Compare IRQ Channel */
#define TIM2_IRQChannel ((u8)0x1C) /* TIMER2 global IRQ Channel */
#define TIM3_IRQChannel ((u8)0x1D) /* TIMER3 global IRQ Channel */
#define TIM4_IRQChannel ((u8)0x1E) /* TIMER4 global IRQ Channel */
#define I2C1_EV_IRQChannel ((u8)0x1F) /* I2C1 Event IRQ Channel */
#define I2C1_ER_IRQChannel ((u8)0x20) /* I2C1 Error IRQ Channel */
#define I2C2_EV_IRQChannel ((u8)0x21) /* I2C2 Event IRQ Channel */
#define I2C2_ER_IRQChannel ((u8)0x22) /* I2C2 Error IRQ Channel */
#define SPI1_IRQChannel ((u8)0x23) /* SPI1 global IRQ Channel */
#define SPI2_IRQChannel ((u8)0x24) /* SPI2 global IRQ Channel */
#define USART1_IRQChannel ((u8)0x25) /* USART1 global IRQ Channel */
#define USART2_IRQChannel ((u8)0x26) /* USART2 global IRQ Channel */
#define USART3_IRQChannel ((u8)0x27) /* USART3 global IRQ Channel */
#define EXTI15_10_IRQChannel ((u8)0x28) /* External Line[15:10] IRQ Channel */
#define RTCAlarm_IRQChannel ((u8)0x29) /* RTC Alarm IRQ Channel */
#define USBWakeUp_IRQChannel ((u8)0x2A) /* USB WakeUp IRQ Channel */
/* System Handlers */
#define SystemHandler_NMI ((u32)0x00001F) /* NMI Handler */
#define SystemHandler_HardFault ((u32)0x000000) /* Hard Fault Handler */
#define SystemHandler_MemoryManage ((u32)0x043430) /* Memory Manage Handler */
#define SystemHandler_BusFault ((u32)0x547931) /* Bus Fault Handler */
#define SystemHandler_UsageFault ((u32)0x24C232) /* Usage Fault Handler */
#define SystemHandler_SVCall ((u32)0x01FF40) /* SVCall Handler */
#define SystemHandler_DebugMonitor ((u32)0x0A0080) /* Debug Monitor Handler */
#define SystemHandler_PSV ((u32)0x02829C) /* PSV Handler */
#define SystemHandler_SysTick ((u32)0x02C39A) /* SysTick Handler */
/* Vector Table Base */
#define NVIC_VectTab_RAM ((u32)0x20000000)
#define NVIC_VectTab_FLASH ((u32)0x00000000)
/* System Low Power */
#define NVIC_LP_SEVONPEND ((u8)0x10)
#define NVIC_LP_SLEEPDEEP ((u8)0x04)
#define NVIC_LP_SLEEPONEXIT ((u8)0x02)
/* Preemption Priority Group */
#define NVIC_PriorityGroup_0 ((u32)0x700) /* 0 bits for pre-emption priority
4 bits for subpriority */
#define NVIC_PriorityGroup_1 ((u32)0x600) /* 1 bits for pre-emption priority
3 bits for subpriority */
#define NVIC_PriorityGroup_2 ((u32)0x500) /* 2 bits for pre-emption priority
2 bits for subpriority */
#define NVIC_PriorityGroup_3 ((u32)0x400) /* 3 bits for pre-emption priority
1 bits for subpriority */
#define NVIC_PriorityGroup_4 ((u32)0x300) /* 4 bits for pre-emption priority
0 bits for subpriority */
/* Exported macro ------------------------------------------------------------*/
/* Exported functions ------------------------------------------------------- */
void NVIC_DeInit(void);
void NVIC_SCBDeInit(void);
void NVIC_PriorityGroupConfig(u32 NVIC_PriorityGroup);
void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct);
void NVIC_StructInit(NVIC_InitTypeDef* NVIC_InitStruct);
void NVIC_SETPRIMASK(void);
void NVIC_RESETPRIMASK(void);
void NVIC_SETFAULTMASK(void);
void NVIC_RESETFAULTMASK(void);
void NVIC_BASEPRICONFIG(u32 NewPriority);
u32 NVIC_GetBASEPRI(void);
u16 NVIC_GetCurrentPendingIRQChannel(void);
ITStatus NVIC_GetIRQChannelPendingBitStatus(u8 NVIC_IRQChannel);
void NVIC_SetIRQChannelPendingBit(u8 NVIC_IRQChannel);
void NVIC_ClearIRQChannelPendingBit(u8 NVIC_IRQChannel);
u16 NVIC_GetCurrentActiveHandler(void);
ITStatus NVIC_GetIRQChannelActiveBitStatus(u8 NVIC_IRQChannel);
u32 NVIC_GetCPUID(void);
void NVIC_SetVectorTable(u32 NVIC_VectTab, u32 Offset);
void NVIC_GenerateSystemReset(void);
void NVIC_GenerateCoreReset(void);
void NVIC_SystemLPConfig(u8 LowPowerMode, FunctionalState NewState);
void NVIC_SystemHandlerConfig(u32 SystemHandler, FunctionalState NewState);
void NVIC_SystemHandlerPriorityConfig(u32 SystemHandler, u8 SystemHandlerPreemptionPriority,
u8 SystemHandlerSubPriority);
ITStatus NVIC_GetSystemHandlerPendingBitStatus(u32 SystemHandler);
void NVIC_SetSystemHandlerPendingBit(u32 SystemHandler);
void NVIC_ClearSystemHandlerPendingBit(u32 SystemHandler);
ITStatus NVIC_GetSystemHandlerActiveBitStatus(u32 SystemHandler);
u32 NVIC_GetFaultHandlerSources(u32 SystemHandler);
u32 NVIC_GetFaultAddress(u32 SystemHandler);
#endif /* __STM32F10x_NVIC_H */
/******************* (C) COPYRIGHT 2007 STMicroelectronics *****END OF FILE****/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -