根据实际电路版修改对应引脚,LED KEY LCD 正常运行
This commit is contained in:
@@ -11,7 +11,7 @@
|
||||
*/
|
||||
|
||||
#include "key.h"
|
||||
|
||||
#include "160160D.h"
|
||||
|
||||
// 按键配置结构体
|
||||
typedef struct {
|
||||
@@ -37,17 +37,16 @@ typedef struct {
|
||||
*/
|
||||
// 按键配置表
|
||||
static const KeyConfig_t key_configs[] = {
|
||||
{15, GPIOB, KEY_ENTER},
|
||||
{11, GPIOD, KEY_UP},
|
||||
{10, GPIOD, KEY_DOWN},
|
||||
{13, GPIOD, KEY_LEFT},
|
||||
{8, GPIOD, KEY_RIGHT},
|
||||
{12, GPIOD, KEY_ESC},
|
||||
{14, GPIOD, KEY_ADD},
|
||||
{9, GPIOD, KEY_DEC},
|
||||
{15, GPIOD, KEY_RESET},
|
||||
{GPIO_PIN_12, GPIOD, KEY_ENTER},
|
||||
{GPIO_PIN_11, GPIOD, KEY_UP},
|
||||
{GPIO_PIN_10, GPIOD, KEY_DOWN},
|
||||
{GPIO_PIN_13, GPIOD, KEY_LEFT},
|
||||
{GPIO_PIN_8, GPIOD, KEY_RIGHT},
|
||||
{GPIO_PIN_15, GPIOB, KEY_ESC},
|
||||
{GPIO_PIN_3, GPIOB, KEY_ADD},
|
||||
{GPIO_PIN_15, GPIOD, KEY_RESET},
|
||||
};
|
||||
#define KEY_COUNT (sizeof(key_configs) / sizeof(key_configs[0]))
|
||||
#define KEY_COUNT (sizeof(key_configs) / sizeof(key_configs[0]))
|
||||
|
||||
// 按键句柄数组
|
||||
static Button btn_handles[KEY_COUNT];
|
||||
@@ -62,13 +61,13 @@ static KeyCallback key_callback = NULL;
|
||||
*/
|
||||
static uint8_t button_read_level(uint8_t button_id)
|
||||
{
|
||||
uint16_t pin_bit = HAL_GPIO_ReadPin(key_configs[button_id].port, key_configs[button_id].pin);
|
||||
uint8_t pin_bit = HAL_GPIO_ReadPin(key_configs[button_id].port, key_configs[button_id].pin);
|
||||
return pin_bit;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 统一的按键回调函数(内部使用,调用业务逻辑回调)
|
||||
* @param btn 按键句柄指针
|
||||
* @param btn 按键句柄指针
|
||||
*/
|
||||
static void button_callback(Button* btn)
|
||||
{
|
||||
@@ -118,27 +117,28 @@ static void KEY_GPIO_ClockEnable(GPIO_TypeDef *port)
|
||||
**************************************************************************************/
|
||||
void Key_Init(void)
|
||||
{
|
||||
GPIO_InitTypeDef gpio_init_struct;
|
||||
/*由于使用了 PB3 才需要特殊加的*/
|
||||
__HAL_RCC_AFIO_CLK_ENABLE(); // AFIO时钟(修改AFIO寄存器前必须)
|
||||
|
||||
// 统一配置GPIO参数
|
||||
gpio_init_struct.Mode = GPIO_MODE_INPUT;
|
||||
gpio_init_struct.Pull = GPIO_PULLUP;
|
||||
gpio_init_struct.Speed = GPIO_SPEED_HIGH;
|
||||
/* 禁用JTAG,保留SWD(PA13、PA14仍可用于调试)*/
|
||||
/* 这会释放 PA15、PB3、PB4 作为普通GPIO */
|
||||
__HAL_AFIO_REMAP_SWJ_NOJTAG();
|
||||
|
||||
|
||||
GPIO_InitTypeDef gpio_init_struct = {0};
|
||||
// 批量初始化GPIO
|
||||
for (uint8_t i = 0; i < KEY_COUNT; i++)
|
||||
{
|
||||
/* 使能对应GPIO时钟 */
|
||||
KEY_GPIO_ClockEnable(key_configs[i].port);
|
||||
|
||||
// 配置并初始化引脚
|
||||
gpio_init_struct.Pin = key_configs[i].pin;
|
||||
HAL_GPIO_Init(key_configs[i].port, &gpio_init_struct);
|
||||
}
|
||||
|
||||
// 批量初始化MultiButton按键(active_level=0表示低电平有效)
|
||||
for (uint8_t button_id = 0; button_id < KEY_COUNT; button_id++)
|
||||
{
|
||||
/* 使能对应GPIO时钟 */
|
||||
KEY_GPIO_ClockEnable(key_configs[button_id].port);
|
||||
|
||||
// 配置并初始化引脚
|
||||
gpio_init_struct.Pin = key_configs[button_id].pin;
|
||||
gpio_init_struct.Mode = GPIO_MODE_INPUT;
|
||||
gpio_init_struct.Pull = GPIO_NOPULL;
|
||||
gpio_init_struct.Speed = GPIO_SPEED_HIGH;
|
||||
HAL_GPIO_Init(key_configs[button_id].port, &gpio_init_struct);
|
||||
|
||||
button_init(&btn_handles[button_id], button_read_level, 0, button_id);
|
||||
button_attach(&btn_handles[button_id], BTN_SINGLE_CLICK, button_callback);
|
||||
button_start(&btn_handles[button_id]);
|
||||
|
||||
Reference in New Issue
Block a user