daladala 发表于 2019-1-21 14:03:08

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();
但是不能用,请问大佬们有解决办法吗

冯俊波 发表于 2019-1-21 16:41:33

移植的时候注意系统时钟与定时器资源是否冲突
页: [1]
查看完整版本: hal_key按键移植