收藏官网首页
查看: 26214|回复: 1

[求助] hal_key按键移植

1

主题

3

帖子

68

积分

注册会员

Rank: 2

积分
68
跳转到指定楼层
楼主
发表于 2019-1-21 14:03:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
免费使用STM32、APP自动代码生成工具
移植了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();
但是不能用,请问大佬们有解决办法吗

沙发
发表于 2019-1-21 16:41:33 | 只看该作者
移植的时候注意系统时钟与定时器资源是否冲突
发烧友
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

版权与免责声明 © 2006-2024 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )

快速回复 返回顶部 返回列表