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

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

相关推荐
山下梅子酒2254 小时前
洛谷-入门-B2080
c语言
@Mike@4 小时前
12-数据库学习笔记(五种连接算法)
数据库·笔记·学习
韩明君4 小时前
alacrity学习笔记
笔记·学习
humors2214 小时前
【转】逻辑基础知识
学习·考研·读书·教育·逻辑·升学·语文
小O的算法实验室5 小时前
IEEE TEVC,学习辅助的搜索路径重构进化算法
学习·算法·重构
传奇开心果编程5 小时前
【ArkUI进阶练中学】第19课:AI安全与隐私治理
学习·ui·华为·harmonyos
坤坤子吖5 小时前
Python基础语法学习:函数
开发语言·笔记·python·学习
91刘仁德5 小时前
HTTPS 加密原理与 CA 数字证书:从对称加密到完整通信流程
网络·笔记·网络协议·http·https
HugoStudio_SWAN5 小时前
洛谷 B4575 [GESP202609 二级] 直角三角形——临场定义理解与边界质疑
c++·学习·程序人生·算法
其实防守也摸鱼5 小时前
DeepSeek Harness 开源贡献手记:从 Issue 到 Merge 的完整旅程
android·数据库·学习·ai·oracle·自动化