现在主函数只有一个LED红灯亮,主函数关闭任一引脚,LED红灯还会亮

/*****************主函数***********************************/

#include "stm32f1xx_hal.h"
#include "led/led.h"



//引脚LED1=PE5
//引脚LED2=PB5
//现在主函数只有一个LED红灯亮

//主函数关闭任一引脚,LED红灯还会亮




void SystemClock_Config(void);


int main(void)
{

 
  HAL_Init();


  SystemClock_Config();

  LED_GPIO_Init();
 
  while (1)
  {
    HAL_Delay(1000);
    HAL_GPIO_WritePin(GPIOB,GPIO_PIN_5,GPIO_PIN_SET); 	//高电平LED=1
    HAL_GPIO_WritePin(GPIOE,GPIO_PIN_5,GPIO_PIN_SET); 
    
    HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_5);
    HAL_Delay(1000);
    HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_5);
    
    HAL_GPIO_TogglePin(GPIOE,GPIO_PIN_5);
    HAL_Delay(1000);
    HAL_GPIO_TogglePin(GPIOE,GPIO_PIN_5);
  }

}



void SystemClock_Config(void)
{
  RCC_OscInitTypeDef RCC_OscInitStruct;
  RCC_ClkInitTypeDef RCC_ClkInitStruct;

  
  
 RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;  // 外部晶振,8MHz
  RCC_OscInitStruct.HSEState = RCC_HSE_ON;
  RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1;
  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
  RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9;  // 9倍频,得到72MHz主时钟
  HAL_RCC_OscConfig(&RCC_OscInitStruct);

  RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
                              |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;       // 系统时钟:72MHz
  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;              // AHB时钟:72MHz
  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;               // APB1时钟:36MHz
  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;               // APB2时钟:72MHz
  HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2);
  
  
}


/*****************   LED.C文件***********************************/



#include "LED/LED.h"


void LED_GPIO_Init(void)
{

  /* 定义IO硬件初始化结构体变量 */
  GPIO_InitTypeDef GPIO_InitStruct;

  /* GPIO Ports Clock Enable */
   LED1_RCC_CLK_ENABLE();
   LED2_RCC_CLK_ENABLE();

  /*Configure GPIO pin Output Level */
  HAL_GPIO_WritePin(LED1_GPIO, LED1_GPIO_PIN, GPIO_PIN_RESET);

  /*Configure GPIO pin Output Level */
   HAL_GPIO_WritePin(LED2_GPIO, LED2_GPIO_PIN, GPIO_PIN_RESET);

  /*Configure GPIO pin : PE5 */
  GPIO_InitStruct.Pin = GPIO_PIN_5;
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);

  /*Configure GPIO pin : PB5 */
  GPIO_InitStruct.Pin = GPIO_PIN_5;
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

}

#if(0)

void LEDx_StateSet(uint8_t LEDx,LEDState_TypeDef state)
{
  /* 检查输入参数是否合法 */
  assert_param(IS_LED_TYPEDEF(LEDx));
  assert_param(IS_LED_STATE(state));
  
  /* 判断设置的LED灯状态,如果设置为LED灯灭 */
  if(state==LED_OFF)
  {
    if(LED1 & LED1)            
      LED1_OFF;/* LED1灭 */
    
    if(LED2 & LED2)
      LED2_OFF;/* LED2灭 */
    
  
  }
  else if(state==LED_ON) /* 设置LED灯为亮 */
  {
    if(LED1 & LED1)
      LED1_ON;/* LED1亮 */
    
    if(LED2 & LED2)
      LED2_ON;/* LED2亮 */
    

  }
  else
  {
    if(LED1 & LED1)
      LED1_TOGGLE;/* 设置引脚输出反转 */
    
    if(LED2 & LED2)
      LED2_TOGGLE;/* 设置引脚输出反转 */
    

  }
}

#endif



/*****************   LED.H文件***********************************/


#ifndef __LED_H__
#define __LED_H__


#include "stm32f1xx_hal.h"


typedef enum
{
  LED_OFF = 0,
  LED_ON  = 1,
  LED_TOGGLE = 2,
}LEDState_TypeDef;



/*加入一个宏定义,作为LED状态的合法检测,应用了带参数的宏定义-*/
#define IS_LED_STATE(STATE)           (((STATE) == LED_OFF) || ((STATE) == LED_ON) || ((STATE) == LED_TOGGLE))

/* 定义一个uint8_t,置1代表LED配置标志 --------------------------------------------------------------------*/
#define LED1                          (uint8_t)0x01	 // 00000001
#define LED2                          (uint8_t)0x02 // 00000010


/* 加入一个宏定义,作为LED的合法检测,应用了带参数的宏定义----*/
#define IS_LED_TYPEDEF(LED)           (((LED) == LED1) || ((LED) == LED2) ))


#define LED1_RCC_CLK_ENABLE()         __HAL_RCC_GPIOB_CLK_ENABLE()
#define LED1_GPIO_PIN                 GPIO_PIN_5
#define LED1_GPIO                     GPIOE

#define LED2_RCC_CLK_ENABLE()         __HAL_RCC_GPIOG_CLK_ENABLE()
#define LED2_GPIO_PIN                 GPIO_PIN_5
#define LED2_GPIO                     GPIOB //0



#define LED1_ON                       HAL_GPIO_WritePin(LED1_GPIO,LED1_GPIO_PIN,GPIO_PIN_SET)    // 输出高电平
#define LED1_OFF                      HAL_GPIO_WritePin(LED1_GPIO,LED1_GPIO_PIN,GPIO_PIN_RESET)  // 输出低电平
#define LED1_TOGGLE                   HAL_GPIO_TogglePin(LED1_GPIO,LED1_GPIO_PIN)                // 输出反转

#define LED2_ON                       HAL_GPIO_WritePin(LED2_GPIO,LED2_GPIO_PIN,GPIO_PIN_SET)    // 输出高电平
#define LED2_OFF                      HAL_GPIO_WritePin(LED2_GPIO,LED2_GPIO_PIN,GPIO_PIN_RESET)  // 输出低电平
#define LED2_TOGGLE                   HAL_GPIO_TogglePin(LED2_GPIO,LED2_GPIO_PIN)                // 输出反转


void LED_GPIO_Init(void);

/* 函数声明 ------------------------------------------------------------------*/
void LEDx_StateSet(uint8_t LEDx,LEDState_TypeDef state);





#endif

 

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^