OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7808|回复: 7

按键加上防抖后无法正常运行

[复制链接]

2

主题

6

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2019-7-30
在线时间
12 小时
发表于 2021-7-6 18:31:25 | 显示全部楼层 |阅读模式
1金钱
大佬们好 下面是我自己写的按键控制小灯亮灭的程序为什么加上防抖后就不行了?(注释掉防抖后可以达到按键控制的效果 加上防抖后按下按键板子没反应 板子用的是精英版)
#include "stm32f10x.h"
#include "button.h"
#include "delay.h"
int main()
{
BUTTON_Init();         //按键初始化函数
LED_Init();
        while(1)
        {
                if(GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_3)==0)
                {
//                        delay_ms(10);
//                        if(GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_3)==0)
//                        {
                                GPIO_SetBits(GPIOB,GPIO_Pin_5); //PB5置高
                    GPIO_SetBits(GPIOE,GPIO_Pin_5); //PE5置高
//                        }
                }else if(GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_3)==1)
                {
//                         delay_ms(10);
//                         if(GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_3)==1)
//                        {
                                 GPIO_ResetBits(GPIOB,GPIO_Pin_5); //PB5置低
                     GPIO_ResetBits(GPIOE,GPIO_Pin_5); //PE5置低
//                        }
                }
        }
}

最佳答案

查看完整内容[请看2#楼]

问题已解决 我忘记加初始化函数了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

6

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2019-7-30
在线时间
12 小时
 楼主| 发表于 2021-7-6 18:31:26 | 显示全部楼层
问题已解决 我忘记加初始化函数了
回复

使用道具 举报

12

主题

3391

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8654
金钱
8654
注册时间
2020-5-11
在线时间
4115 小时
发表于 2021-7-7 10:31:24 | 显示全部楼层
delay_ms的代码呢
专治疑难杂症
回复

使用道具 举报

80

主题

931

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3348
金钱
3348
注册时间
2013-5-28
在线时间
468 小时
发表于 2021-7-7 10:38:58 | 显示全部楼层
随便顶一个个变量u32 TEMP;
然后把delay_ms(10);换成TEMP=2000;while(TEMP)TEMP--;这样试试看
回复

使用道具 举报

3

主题

821

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3369
金钱
3369
注册时间
2011-11-10
在线时间
207 小时
发表于 2021-7-7 10:41:53 | 显示全部楼层
很有可能是你的 delay_ms(10)问题。你进入这个函数后就死循环一直等待了,
回复

使用道具 举报

0

主题

130

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1876
金钱
1876
注册时间
2016-10-23
在线时间
262 小时
发表于 2021-7-7 11:02:32 | 显示全部楼层
delay_init();            //延时函数初始化
配置systick时钟 的代码呢
6年嵌入式老玩家 深圳
回复

使用道具 举报

6

主题

890

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1481
金钱
1481
注册时间
2020-8-19
在线时间
336 小时
发表于 2021-7-7 12:15:29 | 显示全部楼层
你可以调试看看是不是进入delay死等了
回复

使用道具 举报

3

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2018-2-28
在线时间
16 小时
发表于 2021-7-9 10:09:44 | 显示全部楼层
5楼正解
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-1 02:26

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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