STM32使用rtthread studio内Cubemx开发

先在官网下载rtthread studio后进入,点击Alt+shift+N或者点击左上角文件--->新建--->RT-Thread项目,第一次使用需要点击基于开发板开发进去下载芯片

点击下面的开发板,有个添加更多进入下载页面

往下滑找到你要的芯片,

勾选,再往下滑找到你的下载器

勾选,点击安装资源包等待下载完成

完成后点击右下角退出SDK管理器,然后重复开头步骤新建项目

选择自己的厂商和芯片即可,点击完成,然后打开刚刚创建的文件夹下的application下的main.c,然后点击上面的锤子进行编译

现在即可使用rtthread进行编写代码了,不过这个studio内部集成了cubemx可以直接使用,前提是你电脑里必须也有cubemx软件,否则可能报错,点击根目录下单cubemx setting图标,双击即可

先对系统时钟进行配置,这一步很重要,因为rtt默认使用内部HSI时钟

这里选择PB2推挽输出配置板载LED进行验证,你可以根据自己的开发板进行配置

然后是时钟树,我的是8M晶振,168M主频

然后配置项目输出,完成后点击右上角GENERATE CONDE生成代码

回到studio后重新编译项目会报一堆错误,后续一步一步解决

找到cubmx下的main函数,复制时钟配置这一段

黏贴到rtt的drv时钟配置文件内INIT_BOARD_EXPORT(clock_information);这一行下方

注释掉这一行

再次编译就只剩三个报错,现在我们需要把cubemx生成的初始化配置放到我们自己的main中

gpio头文件也复制过来,后续有别的外设也是这样操作,然后把cubemx下的main排除构建

然后跟着一步一步做就行

然后我们到src目录下可以看到gpio.c没有加入编译,右击->资源配置->添加构建,后续其他有文件缺失都可以到这里添加构建

回到main函数添加如下代码,这里是创建了一个线程实现了led闪烁,如果你引脚跟我不同需要修改#define LED GET_PIN(B,2)即可,PA3就改成#define LED GET_PIN(A,3)

复制代码
/*
 * Copyright (c) 2006-2026, RT-Thread Development Team
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Change Logs:
 * Date           Author       Notes
 * 2026-08-11     RT-Thread    first version
 */

#include <rtthread.h>

#define DBG_TAG "main"
#define DBG_LVL DBG_LOG
#include <rtdbg.h>
#include "gpio.h"
#include "rtdevice.h"
#include "board.h"
#define LED GET_PIN(B,2)
void led_task(void * parameter)
{
    while(1)
    {
        rt_pin_write(LED, PIN_HIGH);
        rt_thread_mdelay(1000);
        rt_pin_write(LED, PIN_LOW);
        rt_thread_mdelay(1000);
    }
}
int main(void)
{
    MX_GPIO_Init();
    rt_pin_mode(LED, PIN_MODE_OUTPUT);
    rt_pin_write(LED, PIN_HIGH);
    rt_thread_t led_ret=rt_thread_create("led_task", led_task, RT_NULL, 256, 10, 10);
    if(led_ret!=RT_NULL)
    {
        rt_thread_startup(led_ret);
        LOG_I("led thread start ok");
    }
    else
    {
        LOG_E("thread create fail");
    }
    return RT_EOK;
}

然后构建下载,下载箭头那可以选择烧录器,烧录后led可以正常闪烁,如果后续你加入其他外设,需要到cubemx的main.h中注释掉void Error_Handler(void);

相关推荐
Zw-awa1 小时前
协议是人为约定:同一个字节能有三种意思
stm32
国科安芯6 小时前
83 倍:ASC0108S 在推挽和开漏之间,差的不是速度,是回程
单片机·嵌入式硬件·架构·电平转换·抗辐射
国科安芯10 小时前
从遥控到自治:ASP4644S2B支撑星载电源健康管理与容错配电
网络·单片机·嵌入式硬件·安全·dcdc·低轨卫星·商业航天
rhythm-ring10 小时前
《汽车热管理系统:电子水泵单线PWM双向诊断机制》
单片机·嵌入式硬件·汽车
Dev_XH13 小时前
【成品设计】基于物联网的车间安全生产监控系统设计
stm32·单片机·嵌入式硬件·物联网
xiebs_14 小时前
【无标题】111
单片机
元器件BOM超人15 小时前
GD32E230C8T6 兆易创新Cortex-M23超值型MCU解析:规格参数、替代选型与常见问题
单片机·嵌入式硬件
LONGZHIQIN15 小时前
STM32学习笔记
笔记·stm32·学习·arm
StarsGreen16 小时前
Android 启动流程详解
android·linux·单片机·嵌入式硬件
en.en..16 小时前
AFE:模拟前端,模拟世界通往 MCU 的信号桥梁
单片机·嵌入式硬件