❝基于rt-thread studio的STM32裸机开发第一节:点亮一个LED
❞
前言
RT-Thread Studio团队在2019年末推出了本土化的中文免费RT-Thread Studio集成开发环境。在推出V1.0.0短短半年时间里,国内注册使用用户已达到10000+,Studio社区非常活跃,大家对自主国产化集成开发环境热情度极高。
RT-Thread Studio 主要包括工程创建和管理,代码编辑,SDK管理,RT-Thread配置,构建配置,调试配置,程序下载和调试等功能,结合图形化配置系统以及软件包和组件资源,减少重复工作,提高开发效率。
介于此,我们开始试着使用RT-Thread Studio先进行STM32的裸机开发。
工程创建
「步骤一:新建工程」
RT-Thread版本不仅仅是一个实时内核,还包含了丰富的中间层组件
RT-Thread Nano是RT-Thread之上进行剪裁后形成的精简版,去掉了一些组件和各种开发板的BSP,仅保留了最核心的实时内核。
这里选择RT-Thread进行创建
这里采用STM32F103RCT6作为主控,故做出如图的设置。需根据实际情况选择对应的芯片型号, 工程建立完成,如图所示。
先进行调试查看程序是否存在错误。 如图所示
「步骤二:点灯准备工作」 对于点灯,需要确定IO口的程序命名,以及其是高或低电平点亮。这里确定的电路图对应的LED接口为PA8,低电平点亮,高电平熄灭。
对于RT-Thread Studio生成的工作区间IO口定义文件在drv_gpio.c中。 可见PA8端口对应为数字8。 对于IO端口的高低电平,输入输出模式在如图所示的文件中。 对于此处LED的IO口相关配置函数如下
//定义LED为输出
rt_pin_mode(LED, PIN_MODE_OUTPUT);
//定义LED端口为低电平
rt_pin_write(LED, PIN_LOW);
「步骤三:点灯」 这里使用#define定义LED端口8,特别的,也可以采用GET_PIN(A,8)来替代这里的8。
#include <rtthread.h>
#include <rtdevice.h>
#define DBG_TAG "main"
#define DBG_LVL DBG_LOG
#include <rtdbg.h>
/* 引脚编号,通过查看驱动文件drv_gpio.c确定 */
#define LED 8
int main(void)
{
int count = 1;
//定义LED为输出
rt_pin_mode(LED, PIN_MODE_OUTPUT);
while (count++)
{
//定义LED端口为低电平
rt_pin_write(LED, PIN_LOW);
// LOG_D("Hello RT-Thread!");
rt_thread_mdelay(1000);
}
return RT_EOK;
}
源码说明,先定义号LED端口,再对其端口模式进行配置,再接着在主循环中进行配置LED端口为低电平进行点亮。
「步骤三:点灯源码改进」
上述采用点灯,单纯实现点亮,无法实现闪烁功能。
//定义LED端口为低电平
rt_pin_write(LED, count % 2);
这里采用取余,进行LED灯闪烁功能的实现。
「步骤四:下载及实验现象」
LED灯点亮实验:
LED灯闪烁实验:
以上就是本次使用基于rt-thread studio的STM32裸机开发第一节:点亮一个LED。