RT-Thread studio STM32 与 5向导航按键模块 5D 使用教程

5向导航按键模块如下:

image.png

COM可以接VCC和GND,接线不同它的中断模式也会不同。

如COM 接 VCC 中断模式是:PIN_IRQ_MODE_RISING (上升沿触发模式)

如COM 接 GND 中断模式是:PIN_IRQ_MODE_FALLING(下降沿触发模式)

中断触发模式 mode 可取如下 5 种宏定义值之一:

#define PIN_IRQ_MODE_RISING 0x00         /* 上升沿触发 */
#define PIN_IRQ_MODE_FALLING 0x01        /* 下降沿触发 */
#define PIN_IRQ_MODE_RISING_FALLING 0x02 /* 边沿触发(上升沿和下降沿都触发)*/
#define PIN_IRQ_MODE_HIGH_LEVEL 0x03     /* 高电平触发 */
#define PIN_IRQ_MODE_LOW_LEVEL 0x04      /* 低电平触发 */

加了一个LED引脚作为反馈,导航键使用UP键,其它键可以举一反三。

全部main.c程序代码:

/*
 * Copyright (c) 2006-2020, RT-Thread Development Team
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Change Logs:
 * Date           Author       Notes
 * 2020-08-22     RT-Thread    first version
 */

#include <rtthread.h>
#include <board.h>
#include <rtdevice.h>

#define DBG_TAG "main"
#define DBG_LVL DBG_LOG
#include <rtdbg.h>

#define KEYUP_PIN GET_PIN(A, 0)
#define LEDO_PIN GET_PIN(C, 13)

void key_up(void *args)
{
    rt_kprintf("up!\n");
    if(rt_pin_read(LEDO_PIN)==PIN_LOW)
    {
    rt_pin_write(LEDO_PIN,PIN_HIGH);
    }
    else {
    rt_pin_write(LEDO_PIN,PIN_LOW);
    }
}

int main(void)
{
     rt_pin_mode(LEDO_PIN,PIN_MODE_OUTPUT);
     /* 按键up引脚为输入模式 */
     rt_pin_mode(KEYUP_PIN,PIN_MODE_INPUT_PULLUP);
     /* COM连接VCC时绑定中断,上升沿模式,回调函数名为key_up */
     rt_pin_attach_irq(KEYUP_PIN, PIN_IRQ_MODE_RISING, key_up, RT_NULL);
     /* COM连接GND时绑定中断,下降沿模式,回调函数名为key_up */
     //rt_pin_attach_irq(KEYUP_PIN, PIN_IRQ_MODE_FALLING, key_up, RT_NULL);
     /* 使能中断 */
     rt_pin_irq_enable(KEYUP_PIN, PIN_IRQ_ENABLE);
    return RT_EOK;
}

运行截图:

参考资料:官方PIN使用文档

### Git Merge 操作指南 #### 基本概念 `git merge` 用于将一个或多个分支的历史记录合并到当前分支中。此命令通常在开发人员完成特性工作后将其集成到主线或其他长期分支时使用[^1]。 #### 使用方法 最简单的形式是通过指定要合并的分支名称来调用 `merge`: ```bash git merge <branch> ``` 这会尝试自动融合更改;如果成功,则创建一个新的提交代表这次合并的结果。然而,在某些情况下可能会发生冲突,即同一文件的不同版本之间存在差异无法被自动化工具解析。 #### 处理冲突 当遇到冲突时,Git会在受影响的文件中标记出具体位置,并暂停合并过程直到这些冲突得到解决。此时需要手动编辑文件以决定保留哪些修改,之后标记该文件已解决并通过以下命令继续流程: ```bash git add . git commit ``` 对于更复杂的情形,如多头合并或多代祖先的情况,可能需要用到额外选项或是交互式的重置功能来进行细致调整[^3]。 #### 实践建议 为了减少潜在问题的发生几率以及简化后续维护难度,遵循良好的协作习惯非常重要——频繁同步最新改动(`pull`)、保持短周期的任务切换频率(及时`push`)、定期清理不再使用的临时实验性质的小型topic branch等措施均有助于维持健康有序的工作环境。 ### 示例代码片段展示如何执行基本的合并操作 假设有一个名为`feature-x`的新功能分支想要加入主干master里边去: ```bash # 切换至目标接收更新的基础线(master) git checkout master # 更新本地副本确保其处于最新状态 git pull origin master # 开始实施两者的汇合动作 git merge feature-x ``` 上述步骤完成后,如果有任何未解决的分歧项就需要按照前述指导方针着手处理直至一切顺利结束整个事务链路。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值