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

基于rt-thread点亮一个灯

使用的开发板是正点原子的探索者,芯片型号是stm32f407ZGT6。

首先安装RT-Thread Studio:

然后创建一个工程,设置过程如下:

创建完之后main.c文件里初始代码如下:

编译,然后下载到开发板里

可以看到串口打印结果如下:

接下来点亮开发板中引脚PF9控制的灯。

代码如下:

c 复制代码
#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中断方式检测按键

代码如下:

c 复制代码
#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;
}

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

相关推荐
mount_myj5 小时前
长长久久【C语言】
c语言
码途漫谈5 小时前
Easy-Vibe开发篇阅读笔记(四)——前端开发之结合 Agent Skills 美化界面
人工智能·笔记·ai·开源·ai编程
酿情师5 小时前
yihan:一款面向连续网页学习的智能侧边栏插件
学习·学习方法·工具·学习工具
瞎某某Blinder6 小时前
DFT学习记录[6]基于 HES06的能带计算+有效质量计算
python·学习·程序人生·数据挖掘·云计算·学习方法
love在水一方7 小时前
VLN 入门学习计划 —— 基于 InternNav
学习
糖炒栗子03267 小时前
【笔记】高分卫星影像 TIF 切片处理
笔记
Nice_Fold8 小时前
Kubernetes DaemonSet、StatefulSet与Service(自用笔记)
笔记·容器·kubernetes
Legendary_0088 小时前
LDR6500:USB‑C DRP PD协议芯片技术详解与应用实践
c语言·开发语言
red_redemption10 小时前
自由学习记录(175)
学习
ZhiqianXia11 小时前
《The Design of Design》阅读笔记
前端·笔记·microsoft