【rt-thread】点灯实验和按键输入实验

基于rt-thread点亮一个灯

使用的开发板是正点原子的探索者,芯片型号是stm32f407ZGT6。
首先安装RT-Thread Studio:
在这里插入图片描述
然后创建一个工程,设置过程如下:
在这里插入图片描述
创建完之后main.c文件里初始代码如下:
在这里插入图片描述
编译,然后下载到开发板里
在这里插入图片描述
可以看到串口打印结果如下:
在这里插入图片描述
接下来点亮开发板中引脚PF9控制的灯。
代码如下:

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

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

#define LED0_PIN    GET_PIN(F, 9)

int main(void)
{
    int count = 1;
    rt_pin_mode(LED0_PIN, PIN_MODE_OUTPUT);

    while (count++)
    {
        rt_pin_write(LED0_PIN, count%2);
        LOG_D("Hello RT-Thread!");
        rt_thread_mdelay(1000);
    }

    return RT_EOK;
}

编译并下载后可以看到红灯闪烁。
注意,添加gpio控制之后发现编译错误,是因为rtthread版本跟stm32f407库版本不匹配,重新下载0.2.2版本
在这里插入图片描述

基于rt-thread中断方式检测按键

代码如下:

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

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

#define LED0_PIN    GET_PIN(F, 9)
#define KEY0_PIN    GET_PIN(E, 2)

int led_flag;

void key0_irq_handler(void* arg)
{
    led_flag++;
    rt_pin_write(LED0_PIN, led_flag%2);
}

int main(void)
{
    int count = 1;
    rt_pin_mode(LED0_PIN, PIN_MODE_OUTPUT);
    rt_pin_mode(KEY0_PIN, PIN_MODE_INPUT_PULLUP);
    rt_pin_attach_irq(KEY0_PIN, PIN_IRQ_MODE_FALLING, key0_irq_handler, RT_NULL);
    rt_pin_irq_enable(KEY0_PIN, PIN_IRQ_ENABLE);

    led_flag = 0;

    while (count++)
    {
        LOG_D("Hello RT-Thread!");
        rt_thread_mdelay(1000);
    }

    return RT_EOK;
}

编译并下载到开发板,按下按键灯亮,再按下按键灯灭。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值