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);

相关推荐
梅梅96641 分钟前
一款mipi转lvds的lcd调试(LT8912B)
单片机·计算机外设·电脑·显示器·pd芯片
开发笔记-阿牛1 小时前
蓝牙音乐灯拆解,又一次拆到蓝牙音乐灯芯片CK6865L
人工智能·单片机·嵌入式硬件·音视频·音频
从零开始的嵌入式之旅1 小时前
day47
arm开发·经验分享·笔记·嵌入式硬件
恒锐丰科技林技术员1 小时前
EG1164 高压大电流升压同步整流芯片解析
经验分享·嵌入式硬件·硬件工程
CHENKONG_CK2 小时前
破解制鞋打磨痛点:RFID赋能去毛刺工序自动化升级
网络·单片机·嵌入式硬件·网络协议·tcp/ip
祖力552 小时前
ARM时钟
嵌入式硬件·arm·时钟·imx6ull
三佛科技-187366133972 小时前
128KB~512KB Flash车规级MCU选型指南(FT32A072 / FT32A103 系列)
单片机·嵌入式硬件
Brilliantwxx3 小时前
【STM32】 SPI Flash 驱动开发实战:阻塞模式驱动 W25Q64(含工程代码)
开发语言·stm32·单片机·嵌入式硬件
纳祥科技3 小时前
拆机拆到芯片级:ARC功放机里的NX7026、NX8420、NX6805
单片机·音视频·智能音箱
老当益壮梁奶奶4 小时前
ARM汇编学习笔记(六):【i.MX6ULL】时钟系统与定时器(EPIT & GPT)
c语言·arm开发·嵌入式硬件·学习·51单片机