day7 红外对光传感器 📅 2026/7/22 18:34:12 COUNTSNSOR.c#include stm32f10x.h // Device header uint16_t CountSensor_Count; void COUNTSNSOR_Init(void){ //开启时钟函数 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); //GPIO GPIO_InitTypeDef GPIO_InitStructrue; GPIO_InitStructrue.GPIO_Mode GPIO_Mode_IPU; GPIO_InitStructrue.GPIO_Pin GPIO_Pin_14; GPIO_InitStructrue.GPIO_Speed GPIO_Speed_50MHz; GPIO_Init(GPIOB,GPIO_InitStructrue); //AFIO GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource14); //EXTI EXTI_InitTypeDef EXTI_InitStructrue; EXTI_InitStructrue.EXTI_Line EXTI_Line14; EXTI_InitStructrue.EXTI_LineCmd ENABLE; EXTI_InitStructrue.EXTI_Mode EXTI_Mode_Interrupt; EXTI_InitStructrue.EXTI_Trigger EXTI_Trigger_Falling; EXTI_Init(EXTI_InitStructrue); //NVIC NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); NVIC_InitTypeDef NVIC_InitStructrue; NVIC_InitStructrue.NVIC_IRQChannel EXTI15_10_IRQn; NVIC_InitStructrue.NVIC_IRQChannelCmd ENABLE; NVIC_InitStructrue.NVIC_IRQChannelPreemptionPriority 1; NVIC_InitStructrue.NVIC_IRQChannelSubPriority 1; NVIC_Init(NVIC_InitStructrue); } uint16_t GetCount(void){ return CountSensor_Count; } void EXTI15_10_IRQHandler(void){a if(EXTI_GetFlagStatus(EXTI_Line14) SET) { CountSensor_Count ; EXTI_ClearITPendingBit(EXTI_Line14); } }