基于stm32的4X4矩阵键盘定时器扫描消抖法,彻底告别delay函数!

        经本人刻苦钻研,将51单片机上用的矩阵键盘扫描程序移植到了stm32上,同时也做了很大的改进,最大的改进莫过于消抖这块了。以前的消抖总是采用delay延时约10到20ms的时间,但这样会导致MCU在延时里空跑而造成主程序被搁置,显然,程序的实时性大打折扣,今天便在此让新手们别delay,从此走进一个崭新的扫描消抖世界!(本人也是新手——爱钻研的新手哈!^_^)

//stm32矩阵键盘翻转扫描法(PB口的低8位)
//将此矩阵键盘扫描程序放在定时器中断服务程序里
//每10ms进入一次中断服务程序
s8 scan_MatrixKey(void)
{
    #define PORT GPIOB->IDR
    u8 column;//列
    u8 row;//行
    u8 tmp;//临时变量
    s8 MatrixKey_value = 20;//初始值不能为0~15
    static u8 key_count = 0;//按键被中断扫描的次数
   
    ///IO口的配置/
    //低8位为推挽输出
    GPIOB->CRL &= 0X00000000;
    GPIOB->CRL |= 0X33333333;
    //初值:低4位为低,次低4位为高
    GPIOB->ODR &= 0XFF00;
    GPIOB->ODR |= 0X00F0;
    //次低4位为上拉输入
    GPIOB->CRL &

  • 3
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值