根据实际电路版修改对应引脚,LED KEY LCD 正常运行

This commit is contained in:
2026-01-25 13:02:58 +08:00
parent a2224908e3
commit 065f070cfa
93 changed files with 5750 additions and 9255 deletions

View File

@@ -144,7 +144,7 @@ static void button_handler(Button* handle)
// Level not changed, reset counter
handle->debounce_cnt = 0;
}
/*-----------------State machine-------------------*/
switch (handle->state) {
case BTN_STATE_IDLE:

View File

@@ -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保留SWDPA13、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]);