stm32第三次学习

HAL库中电平输入函数

GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef*GPIOx,uint16_t GPIO_Pin);

例:判断PC13引脚的输入信号,若为高电平,则将PB9引脚控制的LED灯的开关状态切换。

if(HAL_GPIO_ReadPin(GPIOC, GPIO_PIN_13)==GPIO_PIN_SET )

{

HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_9);

 

}

STM32CubeMX配置

基础配置和之前一样,有一点不同得是这里需要把PB1和PC13设置为上拉模式

时钟设置为

然后生成代码

编辑代码

第一个按键_第一种方式

void Delay(unsigned int t)

{

   while(t--);

}

void Scan_Keys()

{

   if(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_13)==GPIO_PIN_RESET)

   {

      Delay(1000);

      if(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_13)==GPIO_PIN_RESET)

      {

        HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_9);

        while(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_13)==GPIO_PIN_RESET);

      }

     

   }

}

 

第一个按键_第二种方法

void Delay(unsigned int t)

{

   while(t--);

}

void Scan_Keys()

{

   if(KEY2 == 0)

   {

      Delay(1000);

      if(KEY2 == 0)

      {

        HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_9);

        while(KEY2 == 0);

      }

     

   }

}

第二个按键_采用第二种控制方法

在函数Scan_Keys()中添加一下代码

      if(KEY3 == 0)

   {

      Delay(1000);

      if(KEY3 == 0)

      {

        while(KEY3 == 0);

        HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_8);

      }

     

   }

第三个按键_采用第二种控制方法

在函数Scan_Keys()中添加一下代码

if(KEY4 == 0)

   {

      Delay(1000);

      if(KEY4 == 0)

      {

        HAL_GPIO_WritePin(GPIOB,GPIO_PIN_8|GPIO_PIN_9,0);

        while(KEY4 == 0);

      }

     

   }

 

在代码中配置引脚

进入到void MX_GPIO_Init(void)函数中添加需要配置的引脚

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值