Proteus仿真STM32F103R6微控制器的EXTI
生活随笔
收集整理的這篇文章主要介紹了
Proteus仿真STM32F103R6微控制器的EXTI
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
STM32微控制器的外部中斷/事件控制器(External Interrupt/Event Controller,EXTI)管理了控制器的中斷/事件線。每個中斷/事件線都對應有一個邊沿檢測器,可以實現輸入信號的上升沿檢測和下降沿的檢測。EXTI可以實現對每個中斷/事件線進行單獨配置,可以單獨配置為中斷或者事件,以及觸發事件的屬性。
一、添加中斷服務程序
void EXTI0_IRQHandler(void) {if(EXTI_GetITStatus(EXTI_Line0) != RESET){// Toggle LEDGPIOB->ODR ^= GPIO_Pin_All;// Clear the EXTI line 0 pending bitEXTI_ClearITPendingBit(EXTI_Line0);} }二、配置EXTI
void EXTI0_Config(void) {EXTI_InitTypeDef EXTI_InitStructure;GPIO_InitTypeDef GPIO_InitStructure;NVIC_InitTypeDef NVIC_InitStructure;// Enable GPIOC clockRCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);// Configure PC.00 pin as input floatingGPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;GPIO_Init(GPIOC, &GPIO_InitStructure);// Enable AFIO clockRCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);// Connect EXTI0 Line to PC.00 pinGPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource0);// Configure EXTI0 lineEXTI_InitStructure.EXTI_Line = EXTI_Line0;EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;EXTI_InitStructure.EXTI_LineCmd = ENABLE;EXTI_Init(&EXTI_InitStructure);// Enable and set EXTI0 Interrupt to the lowest priorityNVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x0F;NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0F;NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;NVIC_Init(&NVIC_InitStructure); }?
總結
以上是生活随笔為你收集整理的Proteus仿真STM32F103R6微控制器的EXTI的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UART 和 USART 的区别 ==
- 下一篇: Proteus模拟STM32F103R6