基于rt-thread studio的STM32裸机开发第一节:点亮一个LED

基于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 studio的STM32裸机开发第一节:点亮一个LED_第1张图片

工程创建

「步骤一:新建工程」

RT-Thread版本不仅仅是一个实时内核,还包含了丰富的中间层组件

基于rt-thread studio的STM32裸机开发第一节:点亮一个LED_第2张图片

RT-Thread Nano是RT-Thread之上进行剪裁后形成的精简版,去掉了一些组件和各种开发板的BSP,仅保留了最核心的实时内核。

这里选择RT-Thread进行创建

基于rt-thread studio的STM32裸机开发第一节:点亮一个LED_第3张图片

这里采用STM32F103RCT6作为主控,故做出如图的设置。需根据实际情况选择对应的芯片型号, 工程建立完成,如图所示。

基于rt-thread studio的STM32裸机开发第一节:点亮一个LED_第4张图片

先进行调试查看程序是否存在错误。 如图所示

「步骤二:点灯准备工作」 对于点灯,需要确定IO口的程序命名,以及其是高或低电平点亮。这里确定的电路图对应的LED接口为PA8,低电平点亮,高电平熄灭。

基于rt-thread studio的STM32裸机开发第一节:点亮一个LED_第5张图片

对于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 
#include 

#define DBG_TAG "main"
#define DBG_LVL DBG_LOG
#include 

/* 引脚编号,通过查看驱动文件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灯点亮实验:

基于rt-thread studio的STM32裸机开发第一节:点亮一个LED_第6张图片

LED灯闪烁实验:

以上就是本次使用基于rt-thread studio的STM32裸机开发第一节:点亮一个LED。

基于rt-thread studio的STM32裸机开发第一节:点亮一个LED_第7张图片

你可能感兴趣的:(rt-thread,studio,嵌入式开发,单片机,stm32,嵌入式硬件)