当前位置:首页 > 单片机 > 单片机
[导读]一、关于中断中的结构体EXTI_InitTypeDef原型:uint32_t EXTI_InitTypeDef::EXTI_Line{uint32_t EXTI_LineFunctionalState EXTI_LineCmdEXTIMode_TypeDef EXTI_ModeEXTITrigger_TypeDef EXTI_Trigger}含有4个成员1、

一、关于中断中的结构体EXTI_InitTypeDef
原型:uint32_t EXTI_InitTypeDef::EXTI_Line
{
uint32_t EXTI_Line
FunctionalState EXTI_LineCmd
EXTIMode_TypeDef EXTI_Mode
EXTITrigger_TypeDef EXTI_Trigger
}含有4个成员
1、Specifies the EXTI lines to be enabled or disabled. This parameter can be any combination of
EXTI_Lines
EXTI_Lines的取值可以是下面的数字
#define EXTI_Line0 ((uint32_t)0x00001)
#define EXTI_Line1 ((uint32_t)0x00002)
#define EXTI_Line10 ((uint32_t)0x00400)
#define EXTI_Line11 ((uint32_t)0x00800)
#define EXTI_Line12 ((uint32_t)0x01000)
#define EXTI_Line13 ((uint32_t)0x02000)
#define EXTI_Line14 ((uint32_t)0x04000)
#define EXTI_Line15 ((uint32_t)0x08000)
#define EXTI_Line16 ((uint32_t)0x10000)
#define EXTI_Line17 ((uint32_t)0x20000)
#define EXTI_Line18 ((uint32_t)0x40000)
#define EXTI_Line19 ((uint32_t)0x80000)
#define EXTI_Line2 ((uint32_t)0x00004)
#define EXTI_Line3 ((uint32_t)0x00008)
#define EXTI_Line4 ((uint32_t)0x00010)
#define EXTI_Line5 ((uint32_t)0x00020)
#define EXTI_Line6 ((uint32_t)0x00040)
#define EXTI_Line7 ((uint32_t)0x00080)
#define EXTI_Line8 ((uint32_t)0x00100)
#define EXTI_Line9 ((uint32_t)0x00200)
#define IS_EXTI_LINE(LINE) ((((LINE) & (uint32_t)0xFFF00000) == 0x00) && ((LINE) != (uint16_t)0x00))
#define IS_GET_EXTI_LINE(LINE)
2、Specifies the new state of the selected EXTI lines. This parameter can be set either
to ENABLE or DISABLE
3、Specifies the mode for the EXTI lines. This parameter can be a value of EXTIMode_TypeDef
EXTIMode_TypeDef的取值有枚举类型


EXTI_Mode_Interrupt //中断模式
EXTI_Mode_Event //事件模式
4、Specifies the trigger signal active edge for the EXTI lines. This parameter can be a value of
EXTIMode_TypeDef
EXTIMode_TypeDef的取值有:
EXTI_Trigger_Rising //上升沿
EXTI_Trigger_Falling //下降沿
EXTI_Trigger_Rising_Falling // 上升下降沿


以上只是配置中断
然后还需要初始化
初始化函数: void EXTI_Init ( EXTI_InitTypeDef * EXTI_InitStruct )

作用 Initializes the EXTI peripheral according to the specified parameters in the EXTI_InitStruct

还有一个很重要的函数

void GPIO_EXTILineConfig(uint8_tGPIO_PortSource,

uint8_tGPIO_PinSource
)

这个函数的作用就是用于配置哪个GPIO的哪个管脚用于中断!!!!!!!


二、中断向量配置结构体 NVIC_InitTypeDef
作用: NVIC Init Structure definition.
参数成员:
uint8_t NVIC_IRQChannel
FunctionalState NVIC_IRQChannelCmd
uint8_t NVIC_IRQChannelPreemptionPriority
uint8_t NVIC_IRQChannelSubPriority
1、NVIC_IRQChannel
Specifies the IRQ channel to be enabled or disabled. This parameter can be a value of IRQn_Type
它的取值有
00170 NonMaskableInt_IRQn = -14, /*!< 2 Non Maskable Interrupt */
00171 MemoryManagement_IRQn = -12, /*!< 4 Cortex-M3 Memory Management Interrupt */
00172 BusFault_IRQn = -11, /*!< 5 Cortex-M3 Bus Fault Interrupt */
00173 UsageFault_IRQn = -10, /*!< 6 Cortex-M3 Usage Fault Interrupt */
00174 SVCall_IRQn = -5, /*!< 11 Cortex-M3 SV Call Interrupt */
00175 DebugMonitor_IRQn = -4, /*!< 12 Cortex-M3 Debug Monitor Interrupt */
00176 PendSV_IRQn = -2, /*!< 14 Cortex-M3 Pend SV Interrupt */
00177 SysTick_IRQn = -1, /*!< 15 Cortex-M3 System Tick Interrupt */
00178
00179 /****** STM32 specific Interrupt Numbers *********************************************************/
00180 WWDG_IRQn = 0, /*!< Window WatchDog Interrupt */
00181 PVD_IRQn = 1, /*!< PVD through EXTI Line detection Interrupt */
00182 TAMPER_IRQn = 2, /*!< Tamper Interrupt */
00183 RTC_IRQn = 3, /*!< RTC global Interrupt */
00184 FLASH_IRQn = 4, /*!< FLASH global Interrupt */
00185 RCC_IRQn = 5, /*!< RCC global Interrupt */
00186 EXTI0_IRQn = 6, /*!< EXTI Line0 Interrupt */
00187 EXTI1_IRQn = 7, /*!< EXTI Line1 Interrupt */
00188 EXTI2_IRQn = 8, /*!< EXTI Line2 Interrupt */
00189 EXTI3_IRQn = 9, /*!< EXTI Line3 Interrupt */
00190 EXTI4_IRQn = 10, /*!< EXTI Line4 Interrupt */
00191 DMA1_Channel1_IRQn = 11, /*!< DMA1 Channel 1 global Interrupt */
00192 DMA1_Channel2_IRQn = 12, /*!< DMA1 Channel 2 global Interrupt */
00193 DMA1_Channel3_IRQn = 13, /*!< DMA1 Channel 3 global Interrupt */
00194 DMA1_Channel4_IRQn = 14, /*!< DMA1 Channel 4 global Interrupt */
00195 DMA1_Channel5_IRQn = 15, /*!< DMA1 Channel 5 global Interrupt */
00196 DMA1_Channel6_IRQn = 16, /*!< DMA1 Channel 6 global Interrupt */
00197 DMA1_Channel7_IRQn = 17, /*!< DMA1 Channel 7 global Interrupt
对于我的片子还有
00297 #ifdef STM32F10X_HD
00298 ADC1_2_IRQn = 18, /*!< ADC1 and ADC2 global Interrupt */
00299 USB_HP_CAN1_TX_IRQn = 19, /*!< USB Device High Priority or CAN1 TX Interrupts */
00300 USB_LP_CAN1_RX0_IRQn = 20, /*!< USB Device Low Priority or CAN1 RX0 Interrupts */
00301 CAN1_RX1_IRQn = 21, /*!< CAN1 RX1 Interrupt */
00302 CAN1_SCE_IRQn = 22, /*!< CAN1 SCE Interrupt */
00303 EXTI9_5_IRQn = 23, /*!< External Line[9:5] Interrupts */
00304 TIM1_BRK_IRQn = 24, /*!< TIM1 Break Interrupt */
00305 TIM1_UP_IRQn = 25, /*!< TIM1 Update Interrupt */
00306 TIM1_TRG_COM_IRQn = 26, /*!< TIM1 Trigger and Commutation Interrupt */
00307 TIM1_CC_IRQn = 27, /*!< TIM1 Capture Compare Interrupt */
00308 TIM2_IRQn = 28, /*!< TIM2 global Interrupt */
00309 TIM3_IRQn = 29, /*!< TIM3 global Interrupt */
00310 TIM4_IRQn = 30, /*!< TIM4 global Interrupt */
00311 I2C1_EV_IRQn = 31, /*!< I2C1 Event Interrupt */
00312 I2C1_ER_IRQn = 32, /*!< I2C1 Error Interrupt */
00313 I2C2_EV_IRQn = 33, /*!< I2C2 Event Interrupt */
00314 I2C2_ER_IRQn = 34, /*!< I2C2 Error Interrupt */
00315 SPI1_IRQn = 35, /*!< SPI1 global Interrupt */
00316 SPI2_IRQn = 36, /*!< SPI2 global Interrupt */
00317 USART1_IRQn = 37, /*!< USART1 global Interrupt */
00318 USART2_IRQn = 38, /*!< USART2 global Interrupt */
00319 USART3_IRQn = 39, /*!< USART3 global Interrupt */
00320 EXTI15_10_IRQn = 40, /*!< External Line[15:10] Interrupts */
00321 RTCAlarm_IRQn = 41, /*!< RTC Alarm through EXTI Line Interrupt */
00322 USBWakeUp_IRQn = 42, /*!< USB Device WakeUp from suspend through EXTI Line Interrupt */
00323 TIM8_BRK_IRQn = 43, /*!< TIM8 Break Interrupt */
00324 TIM8_UP_IRQn = 44, /*!< TIM8 Update Interrupt */
00325 TIM8_TRG_COM_IRQn = 45, /*!< TIM8 Trigger and Commutation Interrupt */
00326 TIM8_CC_IRQn = 46, /*!< TIM8 Capture Compare Interrupt */
00327 ADC3_IRQn = 47, /*!< ADC3 global Interrupt */
00328 FSMC_IRQn = 48, /*!< FSMC global Interrupt */
00329 SDIO_IRQn = 49, /*!< SDIO global Interrupt */
00330 TIM5_IRQn = 50, /*!< TIM5 global Interrupt */
00331 SPI3_IRQn = 51, /*!< SPI3 global Interrupt */
00332 UART4_IRQn = 52, /*!< UART4 global Interrupt */
00333 UART5_IRQn = 53, /*!< UART5 global Interrupt */
00334 TIM6_IRQn = 54, /*!< TIM6 global Interrupt */
00335 TIM7_IRQn = 55, /*!< TIM7 global Interrupt */
00336 DMA2_Channel1_IRQn = 56, /*!< DMA2 Channel 1 global Interrupt */
00337 DMA2_Channel2_IRQn = 57, /*!< DMA2 Channel 2 global Interrupt */
00338 DMA2_Channel3_IRQn = 58, /*!< DMA2 Channel 3 global Interrupt */
00339 DMA2_Channel4_5_IRQn = 59 /*!< DMA2 Channel 4 and Channel 5 global Interrupt */
00340 #endif /* STM32F10X_HD */
2、第二个参数NVIC_IRQChannelCmd
作用:Specifies whether the IRQ channel defined in NVIC_IRQChannel will be enabled or disabled.
This parameter can be set either to ENABLE or DISABLE
3、第三个参数 IRQChannelPreemptionPriority
Specifies the pre-emption priority for the IRQ channel specified in NVIC_IRQChannel.
This parameter can be a value between 0 and 15
4、第四个参数 uint8_t NVIC_IRQChannelSubPriority
Specifies the pre-emption priority for the IRQ channel specified in NVIC_IRQChannel.
This parameter can be a value between 0 and 15

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭