|
移植了hal_key这个按键驱动到STM32f030k6t6上,hal_key.c和hal_key.h两个文件本身没改动,
main.c中配置了以下
#define GPIO_KEY_NUM 5 ///< Defines the total number of key member
keyTypedef_t singleKey[GPIO_KEY_NUM]; ///< Defines a single key member array pointer
keysTypedef_t keys;
void KeyWarmShortPress(void)
{
printf("KeyWarmShortPress");
HAL_GPIO_WritePin(LedWarm_GPIO_Port,LedWarm_Pin,GPIO_PIN_RESET);
}
void KeyWarmLongPress(void)
{
printf("KeyWarmLongPress");
HAL_GPIO_TogglePin(LedWave_GPIO_Port,LedWave_Pin);
}
void KeyWaveShortPress(void)
{
printf("KeyWaveShortPress");
HAL_GPIO_WritePin(LedWarm_GPIO_Port,LedWarm_Pin,GPIO_PIN_RESET);
}
void KeyWaveLongPress(void)
{
printf("KeyWaveLongPress");
HAL_GPIO_TogglePin(LedWave_GPIO_Port,LedWave_Pin);
}
void KeyMenuShortPress(void)
{
HAL_GPIO_WritePin(LedWarm_GPIO_Port,LedWarm_Pin,GPIO_PIN_RESET);
}
void KeyMenuLongPress(void)
{
HAL_GPIO_TogglePin(LedWave_GPIO_Port,LedWave_Pin);
}
void KeyAddShortPress(void)
{
HAL_GPIO_WritePin(LedWarm_GPIO_Port,LedWarm_Pin,GPIO_PIN_RESET);
}
void KeyAddLongPress(void)
{
HAL_GPIO_TogglePin(LedWave_GPIO_Port,LedWave_Pin);
}
void KeySubShortPress(void)
{
HAL_GPIO_WritePin(LedWarm_GPIO_Port,LedWarm_Pin,GPIO_PIN_SET);
}
void KeySubLongPress(void)
{
HAL_GPIO_TogglePin(LedWave_GPIO_Port,LedWave_Pin);
}
/**************************
函数名称:void keyInit(void)
描述:按键初始化
**************************/
void keyInit(void)
{
singleKey[0] = keyInitOne(NULL, KeyWarm_GPIO_Port, KeyWarm_Pin, KeyWarmShortPress, KeyWarmLongPress);
singleKey[1] = keyInitOne(NULL, KeyWave_GPIO_Port, KeyWave_Pin, KeyWaveShortPress, KeyWaveLongPress);
singleKey[2] = keyInitOne(NULL, KeyMenu_GPIO_Port, KeyMenu_Pin, KeyMenuShortPress, KeyMenuLongPress);
singleKey[3] = keyInitOne(NULL, KeyAdd_GPIO_Port, KeyAdd_Pin, KeyAddShortPress, KeyAddLongPress);
singleKey[4] = keyInitOne(NULL, KeySub_GPIO_Port, KeySub_Pin, KeySubShortPress, KeySubLongPress);
keys.singleKey = (keyTypedef_t *)&singleKey;
keyParaInit(&keys);
}
然后再主函数中调用了keyInit();
但是不能用,请问大佬们有解决办法吗
|
|