2023年12月30日发(作者:)

MX_GPIO_Init(); //最开始先点亮PD12的LED HAL_GPIO_WritePin(GPIOD, GPIO_PIN_12, GPIO_PIN_SET); while (1) { //有按键按下 if(GetPress()==1) { TurnOffLED(LEDNUM_Flag); FlagPlus(&LEDNUM_Flag); TurnOnLED(LEDNUM_Flag); } }}/** System Clock Configuration*/void SystemClock_Config(void){ RCC_OscInitTypeDef RCC_OscInitStruct; RCC_ClkInitTypeDef RCC_ClkInitStruct; /**Configure the main internal regulator output voltage

*/ __HAL_RCC_PWR_CLK_ENABLE(); __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1); /**Initializes the CPU, AHB and APB busses clocks

*/ RCC_atorType = RCC_OSCILLATORTYPE_HSI; RCC_te = RCC_HSI_ON; RCC_ibrationValue = 16; RCC_te = RCC_PLL_ON; RCC_rce = RCC_PLLSOURCE_HSI; RCC_ = 8; RCC_ = 168; RCC_ = RCC_PLLP_DIV2; RCC_ = 4; if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { _Error_Handler(__FILE__, __LINE__); } /**Initializes the CPU, AHB and APB busses clocks

*/ RCC_ype = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; RCC_Source = RCC_SYSCLKSOURCE_PLLCLK; RCC_Divider = RCC_SYSCLK_DIV1; RCC_1CLKDivider = RCC_HCLK_DIV4; RCC_2CLKDivider = RCC_HCLK_DIV2; if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK) { _Error_Handler(__FILE__, __LINE__); } /**Configure the Systick interrupt time

*/ HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000); /**Configure the Systick

*/ HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK); /* SysTick_IRQn interrupt configuration */ HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);}/** Configure pins as

* Analog

* Input

* Output * EVENT_OUT * EXTI*/static void MX_GPIO_Init(void){ GPIO_InitTypeDef GPIO_InitStruct;

/* GPIO Ports Clock Enable */ __HAL_RCC_GPIOH_CLK_ENABLE(); __HAL_RCC_GPIOD_CLK_ENABLE(); /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(GPIOD, GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15, GPIO_PIN_RESET); /*Configure GPIO pin : PD11 */ GPIO_ = GPIO_PIN_11; GPIO_ = GPIO_MODE_INPUT; GPIO_ = GPIO_PULLUP; HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); /*Configure GPIO pins : PD12 PD13 PD14 PD15 */ GPIO_ = GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15; GPIO_ = GPIO_MODE_OUTPUT_PP; GPIO_ = GPIO_NOPULL; GPIO_ = GPIO_SPEED_FREQ_VERY_HIGH; HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);}///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////_Bool GetPress(void){ if(HAL_GPIO_ReadPin(GPIOD,GPIO_PIN_11)==0) { HAL_Delay(10); if(HAL_GPIO_ReadPin(GPIOD,GPIO_PIN_11)==0) { while(HAL_GPIO_ReadPin(GPIOD,GPIO_PIN_11)==0) {;} return 1; } else return 0; } else return 0;}void TurnOnLED(int flag){ switch(flag) { case 12 : HAL_GPIO_WritePin(GPIOD, GPIO_PIN_12, GPIO_PIN_SET); break; case 13 : HAL_GPIO_WritePin(GPIOD, GPIO_PIN_13, GPIO_PIN_SET); break; case 14 : HAL_GPIO_WritePin(GPIOD, GPIO_PIN_14, GPIO_PIN_SET); break; case 15 : HAL_GPIO_WritePin(GPIOD, GPIO_PIN_15, GPIO_PIN_SET); break; }}void TurnOffLED(int flag){ switch(flag) { case 12 : HAL_GPIO_WritePin(GPIOD, GPIO_PIN_12, GPIO_PIN_RESET); break; case 13 : HAL_GPIO_WritePin(GPIOD, GPIO_PIN_13, GPIO_PIN_RESET); break; case 14 : HAL_GPIO_WritePin(GPIOD, GPIO_PIN_14, GPIO_PIN_RESET); break; case 15 : HAL_GPIO_WritePin(GPIOD, GPIO_PIN_15, GPIO_PIN_RESET); break; }}void FlagPlus(int *flag){ (*flag)++; if((*flag)==16) {