stm32按按键控制led灯没有反应

#include"main.h"//包含main.h头文件

int main(void)//程序执行的入口,
{
GPIO_InitTypeDef gpioinit;//结构体指针,相当于调查问卷

HAL_Init();//HAL的初始化函数

__HAL_RCC_GPIOA_CLK_ENABLE();//宏,用来开启GPIOA的时钟,
gpioinit.Pin=GPIO_PIN_0;
gpioinit.Mode=GPIO_MODE_OUTPUT_PP;
gpioinit.Speed=GPIO_SPEED_FREQ_HIGH;
HAL_GPIO_Init(GPIOA,&gpioinit);//单个GPIOA引脚的初始化函数,取个地址符

gpioinit.Pin=GPIO_PIN_1;
gpioinit.Mode=GPIO_MODE_INPUT;
gpioinit.Pull=GPIO_NOPULL;
__HAL_RCC_GPIOA_CLK_ENABLE();
HAL_GPIO_Init(GPIOA,&gpioinit);

HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_1);

  while(1)

    if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_1)==0)
        {
        HAL_Delay(20);

        if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_1)==0)
        {
            HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_0);
            while(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_1)==0);
            HAL_Delay(20);
        }

        }

}