RT thread 学习笔记(一)点亮LED

RT thread 专栏收录该内容
2 篇文章 0 订阅

进入官网下载RT thread软件后,尝试点亮LED灯。

官网提供了点亮LED的相关代码,点击:资料→文档中心→Demo示例→蜂鸣器播放器→简介→第1节:使用PIN设备控制LED,有详细的介绍,最后有获取相应代码的链接。
在这里插入图片描述

在RT thread新建项目,选择对应的芯片,调试器选择ST-LINK,建立项目。

在这里插入图片描述
在applications中新建文件,这里需要led.h和led.c两个文件。

led.h:

#ifndef LED_H
#define LED_H
#include <board.h>
#include <rtdevice.h>

#define LED_PIN     GET_PIN(B, 0)

int led_init(void);                     //LED 灯初始化
int led_on(void);                       //LED 灯亮
int led_off(void);                      //LED 灯灭
int led_toggle(void);                   //LED 灯亮灭状态翻转

#endif

这里LED_PIN的宏定义要选择板子上面对应LED的引脚,比如我的板子上面的LED是PB0,就写 GET_PIN(B, 0)。

led.c:

#include <rtdevice.h>

#include "led.h"

int led_init(void)
{
    /* 设定 LED 引脚为推挽输出模式 */
    rt_pin_mode(LED_PIN, PIN_MODE_OUTPUT);

    return 0;
}

int led_on(void)
{
    /* 调用 API 输出高电平 */
    rt_pin_write(LED_PIN, PIN_HIGH);

    return 0;
}

int led_off(void)
{
    /* 调用 API 输出低电平 */
    rt_pin_write(LED_PIN, PIN_LOW);

    return 0;
}

int led_toggle(void)
{
    /* 调用 API 读出当前电平 然后输出相反电平 */
    rt_pin_write(LED_PIN, !rt_pin_read(LED_PIN));

    return 0;
}

这里注意led_on和led_off函数的rt_pin_write后面的引脚电位高低要根据实际情况来定,比如我的LED的高电平触发点亮的,故led_on中的rt_pin_write选择 PIN_HIGH,led_off则选择PIN_LOW。

main.c:

#include <rtthread.h>
#include "led.h"

int main(void)
{
    /* user app entry */
    led_init();
    led_on();
    while (1)
    {
        led_toggle();
        rt_thread_mdelay(500);
    }

对程序进行编译和下载后,LED点亮。

注意:使用RT thread 官网提供的代码可能会报错,需要在led.h上面加入宏定义:

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

问题解决。

RT thread点亮LED官方文档

  • 0
    点赞
  • 0
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值