RT Thread Studio使用经验——GPIO驱动实现(LED闪烁)

一、环境准备

使用STM32F103RCT6(正点原子Mini开发板)开发,Flash大小为256k,LED对应引脚为PA8,使用ST-Link调试器烧录。

二、项目创建

创建RT Thread标准版本项目,选择芯片开发并选择好对应的芯片型号。如图:
在这里插入图片描述

三、RT - Thread Settings配置

找到Drivers里的Pin图标左键将其点亮并保存:
在这里插入图片描述
这一步相当于要使用该芯片的GPIO资源。
此时头文件rtdevice.h的内容就会发生改变:
在这里插入图片描述
很明显drivers/pin.h被包含道工程中了,这也是设置GPIO所需要的头文件。

四、main函数编写

找到applications文件夹里的main.c,此时应该有一个伴随项目创建时的示例main程序。只需要对原有的main程序稍加改动就可以实现简单的GPIO控制了。
原本的示例代码时这样的:

/*
 * Copyright (c) 2006-2023, RT-Thread Development Team
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Change Logs:
 * Date           Author       Notes
 * 2023-03-16     RT-Thread    first version
 */

#include <rtthread.h>

#define DBG_TAG "main"
#define DBG_LVL DBG_LOG
#include <rtdbg.h>

int main(void)
{
    int count = 1;

    while (count++)
    {
        LOG_D("Hello RT-Thread!");
        rt_thread_mdelay(1000);
    }

    return RT_EOK;
}

为了能够设置GPIO,我们首先知道设置GPIO引脚的电平需要几步:

1.导入对应的头文件rtdevice.h,上文已经讲过:

#include <rtthread.h>
#include <rtdevice.h> //RT thread标准项目中添加芯片资源的头文件
#include <drv_common.h>//驱动常用代码头文件
#include <rtdbg.h>

2.通过宏定义设置对应引脚

#define LED0_PIN    GET_PIN(A, 8) //将PA8的引脚号定义为LED0_PIN

3.在main函数中开始写程序,首先是初始化GPIO引脚,设置为推挽输出模式:

rt_pin_mode(LED0_PIN, PIN_MODE_OUTPUT);//初始化GPIO引脚,设置为推挽输出模式

4.编写LED闪烁的逻辑代码:

//LED闪烁的逻辑代码
 while (1)
    {
       		 rt_pin_write(LED0_PIN, PIN_HIGH);//拉高PA8的引脚电平
             rt_thread_mdelay(500);//延时500ms
             rt_pin_write(LED0_PIN, PIN_LOW);//拉低PA8的引脚电平
             rt_thread_mdelay(500);//延时500ms
    }

5.总体代码

main.c

/*
 * Copyright (c) 2006-2023, RT-Thread Development Team
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Change Logs:
 * Date           Author       Notes
 * 2023-03-16     RT-Thread    first version
 */

#include <rtthread.h>
#include <rtdevice.h>//RT thread标准项目中添加芯片资源的头文件
#include <drv_common.h>//驱动常用代码头文件
#include <rtdbg.h>

#define DBG_TAG "main"
#define DBG_LVL DBG_LOG

#define LED0_PIN    GET_PIN(A, 8) //将PA8的引脚号定义为LED0_PIN

int main(void)
{
    rt_pin_mode(LED0_PIN, PIN_MODE_OUTPUT);//初始化GPIO引脚,设置为推挽输出模式

    //LED闪烁的逻辑代码
     while (1)
        {
                 rt_pin_write(LED0_PIN, PIN_HIGH);//拉高PA8的引脚电平
                 rt_thread_mdelay(500);//延时500ms
                 rt_pin_write(LED0_PIN, PIN_LOW);//拉低PA8的引脚电平
                 rt_thread_mdelay(500);//延时500ms
        }
    return RT_EOK;
}

五、编译并烧录

点击左上角的为项目"xxx"构建“Debug”,图标是一个小锤子,或者按快捷键CTRL+B编译项目。
没有问题的话,控制台会出现这个画面:
在这里插入图片描述
烧录程序快捷键CTRL+ALT+D,烧录程序到开发板。
没有问题会出现这个画面:
在这里插入图片描述

六、好啦

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值