RT-Thread Studio学习记录(一)LED闪烁-Pin设备操作

本文介绍了如何在RT-ThreadStudio中新建一个STM32项目,配置串口和下载方式,然后实现LED闪烁功能。特别提到STM32F103使用rt_pin_get()的问题和替代方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

RT-Thread Studio学习记录

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
第1章:LED闪烁-Pin设备操作


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:

RT-Thread Studio学习记录


提示:以下是本篇文章正文内容,下面案例可供参考

一、新建工程

1.项目资源管理器空白区域右键->新建->项目,选择RT-Thread项目,此为标准RT-thread项目。点击下一步
新建项目
2.根据芯片新建项目,配置项目存储位置、芯片型号、串口、以及下载方式。点击完成新建项目。在这里插入图片描述
3.构建项目编译无错误。
4.双击CubeMX Settings,进入设置,设置时钟、下载、串口并保存
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
配置完成后,点击生成Generate Code。
再次构建,没有错误。如果没有配置uart1,则会报错,再重新进入cubemx配置uart1后返回studio再次编译即可。

二、LED闪烁

1.代码修改

代码如下 :
#include <rtthread.h>
#include <rtdevice.h>
#include <drv_common.h>
#define DBG_TAG “main”
#define DBG_LVL DBG_LOG
#include <rtdbg.h>
#define LED_PIN GET_PIN(C, 8)//定义LED引脚为PC8
int main(void)
{
int count = 1;
rt_pin_mode(LED_PIN, PIN_MODE_OUTPUT);//设置PC8为输出模式
while (count++)
{
rt_pin_write(LED_PIN, count%2);//根据count值对PC8进行 0 1 操作
LOG_D(“Hello RT-Thread!”);
rt_thread_mdelay(1000);
}

return RT_EOK;

}


总结

STM32F103底层rt_pin_get()函数不可用,底层没有代码,调用后得出的pin号不对。STM32F407可用。

### RT-Thread Studio Nano 开发环境配置和使用 #### 配置开发环境 RT-Thread Studio站式的 RT-Thread 开发工具,提供了简单易用的图形化配置系统以及丰富的软件包和组件资源,使得物联网开发变得更加简单和高效[^2]。对于希望基于此平台开展 STM32 程序开发工作的开发者而言,了解如何设置并利用该IDE至关重要。 为了启动个新的工程项目,在 RT-Thread Studio 中创建基础工程可以参照特定指南,这其中包括了关于PIN设备接口的基础工程构建说明[^1]。当涉及到更具体的Nano版本时,《嵌入式系统 - RT-Thread开发笔记》第二部分第章也给出了详细的介绍,包括下载源码压缩包的方法以便于将其移植到不同的编译环境中去,比如IAR等[^3]。 #### 使用教程概览 旦完成了上述提到的基本准备工作之后: - **初始化项目**:打开RT-Thread Studio后可以选择新建个针对选定硬件的目标板卡模板来快速建立初始框架。 - **配置选项**:通过内置的菜单配置界面调整所需的功能模块和服务支持情况;这里特别适合初学者逐步探索各个特性而不必担心复杂的底层细节处理问题。 - **编写代码**:借助集成编辑器完成应用程序逻辑的设计实现工作。值得注意的是,尽管官方文档主要围绕C语言展开讨论,但实际上也可以采用C++来进行高级别的抽象编程。 - **调试运行**:连接目标单片机并通过串口监视窗口观察输出日志信息以验证预期行为是否达成。 ```cpp // 示例:简单的LED闪烁程序 #include "rtthread.h" static void led_thread_entry(void *parameter) { while (1) { rt_pin_write(LED_PIN, PIN_LOW); // 打开 LED rt_thread_mdelay(500); rt_pin_write(LED_PIN, PIN_HIGH); // 关闭 LED rt_thread_mdelay(500); } } int main(void) { /* 创建线程 */ rt_thread_t tid = rt_thread_create("led", led_thread_entry, RT_NULL, 1024, 25, 10); if (tid != RT_NULL) rt_thread_startup(tid); return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值