hal_key按键移植
移植了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; ///< 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 = keyInitOne(NULL, KeyWarm_GPIO_Port, KeyWarm_Pin, KeyWarmShortPress, KeyWarmLongPress);
singleKey = keyInitOne(NULL, KeyWave_GPIO_Port, KeyWave_Pin, KeyWaveShortPress, KeyWaveLongPress);
singleKey = keyInitOne(NULL, KeyMenu_GPIO_Port, KeyMenu_Pin, KeyMenuShortPress, KeyMenuLongPress);
singleKey = keyInitOne(NULL, KeyAdd_GPIO_Port, KeyAdd_Pin, KeyAddShortPress, KeyAddLongPress);
singleKey = keyInitOne(NULL, KeySub_GPIO_Port, KeySub_Pin, KeySubShortPress, KeySubLongPress);
keys.singleKey = (keyTypedef_t *)&singleKey;
keyParaInit(&keys);
}
然后再主函数中调用了keyInit();
但是不能用,请问大佬们有解决办法吗
移植的时候注意系统时钟与定时器资源是否冲突
页:
[1]