【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;
}

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

相关推荐
半生过往9 小时前
前端学 Java 课程笔记
java·前端·笔记
九硕智慧建筑一体化厂家10 小时前
楼宇自控|智慧建筑核心引擎!楼宇自控系统,赋能建筑高效低碳运维
运维·人工智能·笔记·智慧城市
GGMM78910 小时前
施耐德 VX5A1HC90110(VX5A1HD9011)ATV61/ATV71 90‑110KW 电源驱动板详解
笔记·变频器·变频器维修
Wang's Blog11 小时前
PostgreSQL笔记48: 全文检索与向量检索的对比与混合检索实践
笔记·postgresql·全文检索
liuyicenysabel12 小时前
Flask 个人站 iProfile 上线笔记(k3s + Nginx + Let‘s Encrypt)
笔记·nginx·flask
caimouse12 小时前
ReactOS 窗口系统分析(25):标题栏显示与系统按钮 — nonclient.c 标题栏专题
c语言·开发语言
深蓝海拓12 小时前
基于QtPy (PySide6) 的PLC-HMI工程项目(十五)后续完善和改进:PLC端数据解析的防粘包、残包、废包、拆包
笔记·学习·plc
小黄蚁12 小时前
LVGL学习笔记(六)
笔记·学习
caimouse13 小时前
ReactOS 窗口系统分析(14):计时器/属性/加速键/热键 — timer.c + prop.c + accelerator.c + hotkey.c
c语言·开发语言·reactos
水饺编程13 小时前
第5章,[Win32 章节] :贝塞尔样条曲线(一)
c语言·c++·windows·visual studio