STM32CubeMX系列GPIO

本例讲解STM32的GPIO使用,通过按键控制LED灯亮灭

打开STM32CubeMX新建工程,选择STMF130ZET6芯片。选择外部高速晶振(HSE).

根据德飞莱M3开发板原理图,选择按键和LED引脚

PE4,PE3为按键输入管脚,选择GPIO_INPUT模式。

PB5,PE5为LED输出控制管脚,选择GPIO_OUTPUT模式。

点击Clock Configuration配置系统时钟为72M最高速度

在System view中点击GPIO,设置PB5,PE5默认电平为高电平,其他不变

点击Project Manager,新建工程,输入工程名,选择工程保存路径。IDE选择MDK-ARM V5.27

再点击Code generator,勾选Generate peripheral initialization as a pair of `.c\h` files per peripheral,为你所配置的相关外设(GPIO,TIM,USART....等)的初始化,单独生成.c.h文件存放。

最后点击CODE GENERATE生成代码,在跳出的提示框中点击open Project

在USER CODE BEGIN 3和USER CODE END 3中添加下列代码

  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
		if(HAL_GPIO_ReadPin(GPIOE,GPIO_PIN_4)==0)//检测是否按下去
		{
			HAL_Delay(10);//延生10毫秒
            HAL_GPIO_WritePin(GPIOE,GPIO_PIN_5,GPIO_PIN_SET);//PE5高电平
			if(HAL_GPIO_ReadPin(GPIOE,GPIO_PIN_4)==0)//再检测是否按下去
			{
				HAL_GPIO_WritePin(GPIOB,GPIO_PIN_5,GPIO_PIN_RESET);//PB5低电平
			}
		}
        if(HAL_GPIO_ReadPin(GPIOE,GPIO_PIN_3)==0)//检测是否按下去
		{
			HAL_Delay(10);//延生10毫秒
            HAL_GPIO_WritePin(GPIOB,GPIO_PIN_5,GPIO_PIN_SET);//PB5高电平
			if(HAL_GPIO_ReadPin(GPIOE,GPIO_PIN_3)==0)//再检测是否按下去
			{
				HAL_GPIO_WritePin(GPIOE,GPIO_PIN_5,GPIO_PIN_RESET);//PE5低电平
			}
		}
  }
  /* USER CODE END 3 */

 

点击进行编译,把程序下载到实验版内。按下不同按键,LED1~LED2灯显示不同的转态。以后写的程序我们可以在这个模板的基础上修改。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值