• 基于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版本不仅仅是一个实时内核,还包含了丰富的中间层组件

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

    这里选择RT-Thread进行创建

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

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

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

    对于RT-Thread Studio生成的工作区间IO口定义文件在drv_gpio.c中。 可见PA8端口对应为数字8。 对于IO端口的高低电平,输入输出模式在如图所示的文件中。 对于此处LED的IO口相关配置函数如下

    1. //定义LED为输出
    2. rt_pin_mode(LED, PIN_MODE_OUTPUT);
    3. //定义LED端口为低电平
    4. rt_pin_write(LED, PIN_LOW);

    「步骤三:点灯」 这里使用#define定义LED端口8,特别的,也可以采用GET_PIN(A,8)来替代这里的8。

    1. #include 
    2. #include 
    3. #define DBG_TAG "main"
    4. #define DBG_LVL DBG_LOG
    5. #include 
    6. /* 引脚编号,通过查看驱动文件drv_gpio.c确定 */
    7. #define LED 8
    8. int main(void)
    9. {
    10.     int count = 1;
    11.     //定义LED为输出
    12.     rt_pin_mode(LED, PIN_MODE_OUTPUT);
    13.     while (count++)
    14.     {
    15.         //定义LED端口为低电平
    16.         rt_pin_write(LED, PIN_LOW);
    17. //        LOG_D("Hello RT-Thread!");
    18.         rt_thread_mdelay(1000);
    19.     }
    20.     return RT_EOK;
    21. }

    源码说明,先定义号LED端口,再对其端口模式进行配置,再接着在主循环中进行配置LED端口为低电平进行点亮。

    「步骤三:点灯源码改进」

    上述采用点灯,单纯实现点亮,无法实现闪烁功能。

    1. //定义LED端口为低电平
    2. rt_pin_write(LED, count % 2);

    这里采用取余,进行LED灯闪烁功能的实现。

    「步骤四:下载及实验现象」

    LED灯点亮实验:

    LED灯闪烁实验:

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

  • 相关阅读:
    HDLbits 刷题 -- Kmap4
    【java学习—十五】线程的通信(6)
    mysql倒序查询
    【STC32G12K128开发板】——搭建开发环境
    【计算机毕业设计】11.毕业生信息管理系统+vue
    小红拿到了一个仅由大小写字母组成的长度为n的字符串,她希望把前k个字母变成大写,后n- k个字母变成小写,你能帮帮她吗?
    Docker
    JavaScript知识系列(6)每天10个小知识点
    MySQL(5)
    Docker安装启动Mysql
  • 原文地址:https://blog.csdn.net/qq_34187873/article/details/126129164