打印
[STM32]

stm32f103zet6独立按键写了没反应,求救

[复制链接]
1992|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
李辉云|  楼主 | 2018-10-10 19:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void KEY_Init(void)    //IO³õʼ»¯
{
        GPIO_InitTypeDef GPIO_InitStructure;

        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOE,ENABLE);//ʹÄÜPORTA,PORTEʱÖÓ

        GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_4|GPIO_Pin_3;//KEY0-KEY1
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //ÉèÖóÉÉÏÀ­ÊäÈë
        GPIO_Init(GPIOE, &GPIO_InitStructure);//³õʼ»¯GPIOE4,3

        //³õʼ»¯ WK_UP-->GPIOA.0          ÏÂÀ­ÊäÈë
        GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_0;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; //PA0ÉèÖóÉÊäÈ룬ĬÈÏÏÂÀ­          
        GPIO_Init(GPIOA, &GPIO_InitStructure);//³õʼ»¯GPIOA.0

}
//°´¼ü´¦Àíº¯Êý
//·µ»Ø°´¼üÖµ
//mode:0,²»Ö§³ÖÁ¬Ðø°´;1,Ö§³ÖÁ¬Ðø°´;
//0£¬Ã»ÓÐÈκΰ´¼ü°´ÏÂ
//1£¬KEY0°´ÏÂ
//2£¬KEY1°´ÏÂ
//3£¬KEY3°´Ï WK_UP
//×¢Òâ´Ëº¯ÊýÓÐÏìÓ¦ÓÅÏȼ¶,KEY0>KEY1>KEY_UP!!
u8 KEY_Scan(u8 mode)
{         
        static u8 key_up=1;//°´¼ü°´ËÉ¿ª±êÖ¾
        if(mode)key_up=1;  //Ö§³ÖÁ¬°´                  
        if(key_up&&(KEY0==0||KEY1==0||WK_UP==1))
        {
                delay_ms(10);//È¥¶¶¶¯
                key_up=0;
                if(KEY0==0)return KEY0_PRES;
                else if(KEY1==0)return KEY1_PRES;
                else if(WK_UP==1)return WKUP_PRES;
        }else if(KEY0==1&&KEY1==1&&WK_UP==0)key_up=1;             
        return 0;// ÎÞ°´¼ü°´ÏÂ
}

相关帖子

沙发
doushi123| | 2018-10-11 09:48 | 只看该作者
帮你消灭零回复

使用特权

评论回复
板凳
1949zbh| | 2018-10-15 13:39 | 只看该作者
这是正点原子例程吧?应该可以用,看看硬件

使用特权

评论回复
地板
Vansm| | 2018-10-24 17:49 | 只看该作者
写按键检测用状态机  delay_ms(10);  这种东西浪费CPU时间

使用特权

评论回复
5
caijie001| | 2018-10-25 00:24 | 只看该作者
去看看我的按键驱动

纯C语言实现的一个按键驱动-ButtonDrive
https://bbs.21ic.com/icview-2573330-1-1.html?fromuser=caijie001
(出处: 21ic电子技术论坛)

使用特权

评论回复
6
caijie001| | 2018-10-25 00:25 | 只看该作者
不要浪费时间啦,这个按键简直就是菜

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

0

粉丝