本工程板级支持包文件适用于野火stm32f429 开发板。
本工程中涉及bsp_led.c, bsp_led.h 等文件,请前往STM32F429 >> 4. 使用固件库点亮LED进行查看
bsp_key.c
/**
******************************************************************************
* @file bsp_key.c
* @author Waao
* @version V1.0.0
* @date 20-Dec-2018
* @brief This file contains some board support package's functions for the KEY.
*
******************************************************************************
* @attention
*
* None
*
******************************************************************************
*/
#include /** * @brief Initialize the key. * @note None * @param None * @retval None */ void KEY_GPIO_Config(void) { GPIO_InitTypeDef GPIO_Structure; RCC_AHB1PeriphClockCmd(KEY1_GPIO_CLK, ENABLE); RCC_AHB1PeriphClockCmd(KEY2_GPIO_CLK, ENABLE); GPIO_Structure.GPIO_Mode = GPIO_Mode_IN; GPIO_Structure.GPIO_Speed = GPIO_Medium_Speed; GPIO_Structure.GPIO_OType = GPIO_OType_PP; GPIO_Structure.GPIO_PuPd = GPIO_PuPd_DOWN; GPIO_Structure.GPIO_Pin = KEY1_PIN; GPIO_Init(KEY1_GPIO_PORT, &GPIO_Structure); GPIO_Structure.GPIO_Pin = KEY2_PIN; GPIO_Init(KEY2_GPIO_PORT, &GPIO_Structure); } /** * @brief Detect the key whether be pressed down actually. * @note None * @param GPIOx: where x can be (A..K) to select the GPIO peripheral. * GPIO_Pin: specifies the port bit to read. This parameter can be GPIO_Pin_x where x can be (0..15). * @retval The status of the input port. */ int Key_Scan(GPIO_TypeDef * GPIOx, uint16_t GPIO_Pin) { if(GPIO_ReadInputDataBit(GPIOx, GPIO_Pin) == KEY_ON) { while(GPIO_ReadInputDataBit(GPIOx, GPIO_Pin) == KEY_ON); return KEY_ON; } else return KEY_OFF; } bsp_key.h /** ****************************************************************************** * @file bsp_key.h * @author Waao * @version V1.0.0 * @date 20-Dec-2018 * @brief This file contains some board support package's definition for the KEY. * ****************************************************************************** * @attention * * None * ****************************************************************************** */ #ifndef __BSP_KEY_H_ #define __BSP_KEY_H_ #include #define KEY1_PIN GPIO_Pin_0 #define KEY1_GPIO_PORT GPIOA #define KEY1_GPIO_CLK RCC_AHB1Periph_GPIOA #define KEY2_PIN GPIO_Pin_13 #define KEY2_GPIO_PORT GPIOC #define KEY2_GPIO_CLK RCC_AHB1Periph_GPIOC #define KEY_ON 1 #define KEY_OFF 0 void KEY_GPIO_Config(void); int Key_Scan(GPIO_TypeDef * GPIOx, uint16_t GPIO_Pin); #endif 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 main.c #include #include #include "bsp_led.h" int main(void) { LED_GPIO_Config(); KEY_GPIO_Config(); LED_BLUE; while(1) { if(Key_Scan(KEY2_GPIO_PORT, KEY2_PIN) == KEY_ON) { LED3_TOGGLE; } if(Key_Scan(KEY1_GPIO_PORT, KEY1_PIN) == KEY_ON) { LED3_TOGGLE; } } }
上一篇:STM32F429 >> 4. 使用固件库点亮LED
下一篇:STM32F429 >> 6. RCC-使用HSE, HSI 配置时钟
推荐阅读最新更新时间:2024-11-08 22:06
设计资源 培训 开发板 精华推荐
- STEVAL-ILL005V1、VIPer12A-E 用于高强度 LED 的离线恒流驱动器评估板
- 【训练营_进阶班】OLED智能插座
- 全开源回流焊Reflow-Controller:基于ESP32-S2,魔改烤箱
- 超迷你WS2812驱动板
- #第七届立创电赛#智能设备
- DC1010A-C,演示电路采用 LTC2487、2/4 通道、16 位 Delta Sigma 模数转换器
- LT6657BHMS8-3 升压型输出电流基准的典型应用电路
- 具有可调输出电压、5V 的典型应用电路,适用于 ADP7105 20V、500mA、低噪声 LDO 稳压器,带软启动
- Ad586 高精度 5V 基准的典型应用电路
- 超迷你的ESP32 PICO D4开发板