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

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

相关推荐
暗影凋落2 分钟前
CMake构建学习笔记-SQLite库的构建
笔记·学习·sqlite
luj_176844 分钟前
星火科技助力边远地区防病攻坚
c语言·开发语言·c++·经验分享·算法
画面无声1 小时前
STM32的SPI通信原理与练习记录
c语言·stm32·单片机·嵌入式硬件·学习
weixin_456808382 小时前
【沁恒蓝牙开发】IAP升级流程
c语言·单片机·嵌入式硬件
zzm6282 小时前
精读KDD 2017最佳论文:通过类比挖掘加速创新 | 阅读笔记
笔记
你有哈莫吗2 小时前
CMake构建学习笔记-iconv库的构建
笔记·学习
ctlover3 小时前
Python学习第4日
学习
geats人山人海3 小时前
数据结构第六章c语言 树的存储下二叉树的概念和存储
c语言·数据结构·算法
小弥儿4 小时前
GitHub今日热榜 | 2026-08-01:硬件安全工具与AI教育并行
人工智能·学习·开源·github
秋雨梧桐叶落莳4 小时前
计算器仿写总结
学习·macos·ios·objective-c·cocoa