STM32
直播中

迷你洼哇

11年用户 553经验值
私信 关注
[问答]

如何去使用Cortex-M4按键扫描

怎样去使用STM32CubeIDE工具软件?
如何利用STM32MP157A芯片的I/O口读取按键状态?

回帖(1)

常静娜

2021-10-9 17:43:58
  第 1 章 Cortex-M4 按键扫描
  1.1 实验目的
  熟悉STM32CubeIDE工具软件的使用。
  掌握STM32CubeIDE软件的基本设计流程和设计步骤,能够使用工具进行设计、编程、仿真调试。
  学习GPIO口的使用方法,掌握如何利用STM32MP157A芯片的I/O口读取按键状态。
  1.2 实验环境
  FS_MP1A开发平台
  ST-Link仿真器
  STM32CubeIDE开发软件
  PC机 XP、Window7/10 (32/64bit)
  1.3 实验原理
  本实验主要通过调用函数HAL_GPIO_ReadPin读取开发板上按键K2的IO口状态,控制LED灯的点亮和关闭状态。
  该实验需要使用到开发板上的LED灯,按键,相关硬件威廉希尔官方网站 如下:
  
  
  
  1.4 实验步骤
  打开STM32CubeIDE-》File-》New-》STM32 Project
  
  可以在左侧搜索框内输入芯片型号STM32MP157A进行搜索,选择对应芯片,点击Next
  
  填写工程名,点击Finsh
  
  点击Yes打开配置页面
  
  搜索框内搜索K2对应GPIO引脚PA0,左键点击设置为GPIO_Input
  
  在Code Generator处选择为每个外设生成单独的C和H文件,这样设置方便阅读代码
  
  完成以上设置后,Ctrl+S保存,会提示是否需要生成代码,选择Yes即可自动生成代码。系统会自动生成System Clock代码
  
  可以在左侧工程文件夹找到KEY_CM4子工程,打开main.c
  添加GPIO初始化函数,初始化LED灯引脚PZ5为输出模式,初始化K2引脚PA0为输入模式
  void bsp_gpio_init(void)
  {
  GPIO_InitTypeDef GPIO_InitStruct;
  __HAL_RCC_GPIOZ_CLK_ENABLE();
  __HAL_RCC_GPIOA_CLK_ENABLE();
  HAL_GPIO_WritePin(GPIOZ, GPIO_PIN_5, GPIO_PIN_SET);
  /*Configure GPIO pin : PZ5 */
  GPIO_InitStruct.Pin = GPIO_PIN_5;
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.Pull = GPIO_PULLUP;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  HAL_GPIO_Init(GPIOZ, &GPIO_InitStruct);
  /*Configure GPIO pin : PA0 */
  GPIO_InitStruct.Pin = GPIO_PIN_0;
  GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  }
  在main.c中调用GPIO初始化函数,在while循环中添加GPIO读函数,判断K2引脚高低电平,改变LED灯状态
  
  1.5 实验现象
  按下K2键,可看到LED灯状态发生改变。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分