基于RT-Thread Studio下的正点原子STM32F103ZET6开发————(4)按键输入

我们打开正点原子精英版的原理图,找到KEY,可以看到有两个按键,分别是KEY0和KEY1,按下即为低电平,所以我们可以通过读取引脚的电平判断是否按下

rt_int8_t rt_pin_read(rt_base_t pin)
读取指定引脚的当前电平
参数
    pin: 引脚编号
返回
PIN_LOW  低电平
PIN_HIGH 高电平

我们接下来实现按KEY0将红灯打开,按KEY1将红灯熄灭。

代码实现如下

#include <rtthread.h>
#include <drv_common.h>
#include <rtdevice.h>
#define DBG_TAG "main"
#define DBG_LVL DBG_LOG
#include <rtdbg.h>
#define RED_LED     GET_PIN(B,5)
#define GREEN_LED   GET_PIN(E,5)
#define KEY_0       GET_PIN(E,4)
#define KEY_1       GET_PIN(E,3)

int main(void)
{
    rt_pin_mode(KEY_0, PIN_MODE_INPUT_PULLUP);
    rt_pin_mode(KEY_1, PIN_MODE_INPUT_PULLUP);
    rt_pin_mode(RED_LED, PIN_MODE_OUTPUT);
    rt_pin_mode(GREEN_LED, PIN_MODE_OUTPUT);
    rt_pin_write(RED_LED, PIN_HIGH);
    rt_pin_write(GREEN_LED, PIN_HIGH);

    while (1)
    {
        if(rt_pin_read(KEY_0) == PIN_LOW)
        {
            rt_thread_mdelay(20);
            if(rt_pin_read(KEY_0) == PIN_LOW)
            {
                rt_pin_write(RED_LED, PIN_LOW);
            }
        }
        if(rt_pin_read(KEY_1) == PIN_LOW)
        {
            rt_thread_mdelay(20);
            if(rt_pin_read(KEY_1) == PIN_LOW)
            {
                rt_pin_write(RED_LED, PIN_HIGH);
            }
        }
    }
    //rt_pin_write(RED_LED, PIN_LOW);
    //rt_pin_write(GREEN_LED, PIN_LOW);
    return RT_EOK;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

热爱跑流水灯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值