松原市网站建设_网站建设公司_Linux_seo优化
2025/12/18 3:31:37 网站建设 项目流程

1.初始化系统

#include "shake.h" #include "stm32f10x.h" void Shake_Init(void) { GPIO_InitTypeDef GPIOinitstruct; EXTI_InitTypeDef EXTIInitstruct; NVIC_InitTypeDef NVICInitstruct; //AFIO是外部中断的时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO,ENABLE); //优先级分组配置,2位用来配置强调优先级,2位用来配置子优先级 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //将GPIOA端口的第0个引脚(PA0)连接到外部中断线EXTI0上 GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0); //初始化 GPIO GPIOinitstruct.GPIO_Mode = GPIO_Mode_IPU; GPIOinitstruct.GPIO_Pin = GPIO_Pin_0; GPIO_Init(GPIOA,&GPIOinitstruct); //初始化EXIT外部中断条件 EXTIInitstruct.EXTI_Line = EXTI_Line0; EXTIInitstruct.EXTI_Mode = EXTI_Mode_Interrupt; EXTIInitstruct.EXTI_Trigger = EXTI_Trigger_Falling;//由于是按键按下,所以说下降沿触发 EXTIInitstruct.EXTI_LineCmd = ENABLE; EXTI_Init(&EXTIInitstruct); //初始化NVIC嵌套中断控制器及分组 NVICInitstruct.NVIC_IRQChannel = EXTI0_IRQn; NVICInitstruct.NVIC_IRQChannelPreemptionPriority = 0; NVICInitstruct.NVIC_IRQChannelSubPriority= 0; NVICInitstruct.NVIC_IRQChannelCmd= ENABLE; NVIC_Init(&NVICInitstruct); }

初始化LED灯

#include "stm32f10x.h" #include "led.h" void LED_Init() { GPIO_InitTypeDef led_initstruct; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); led_initstruct.GPIO_Pin=GPIO_Pin_1; led_initstruct.GPIO_Speed=GPIO_Speed_2MHz; led_initstruct.GPIO_Mode=GPIO_Mode_Out_PP; GPIO_Init(GPIOA,&led_initstruct); }

2.外部中断函数

weak:弱定义,如果用户没有自己定义中断函数,则系统默认执行系统自定义的中断函数,如果用户有定义中断函数,则优先执行用户的中断函数

#include "stm32f10x.h" #include "main.h" #include "led.h" #include "shake.h" void delay(uint16_t time) { uint16_t i=0; while(time --) { i=12000; while(i --); } } int main() { LED_Init(); Shake_Init(); GPIO_SetBits(GPIOA,GPIO_Pin_1); while(1) { } } //判断中断发生控制LED灯 void EXTI0_IRQHandler() { if(EXTI_GetITStatus(EXTI_Line0) != RESET) { GPIO_ResetBits(GPIOA,GPIO_Pin_1); delay(1000); GPIO_SetBits(GPIOA,GPIO_Pin_1); delay(1000); //清除EXTI0线的中断挂起标志位,如果不清除标志位,后续的外部中断无法再次触发 EXTI_ClearITPendingBit(EXTI_Line0); } }

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询