【stm32笔记】使用rtt-studio与stm32CubeMx联合创建项目

使用rtt-studio与stm32CubeMx联合创建项目

创建rt-thread项目

设置项目信息

在项目资源管理器中"右击",创建RRT studio 项目


双击"RT-Thread 项目"。

选择MCU,设置UART,以及调试方式。添加项目名称,点击"完成"按钮。

代码生成后会在项目资源管理器内生成项目目录。

配置代码生成hex文件

此时代码是可以直接编译的。

编译原始rt-thread项目

第一次编译时出错。

将RT_WEAK void rt_hw_board_init()前的RT_WEAK去掉即可继续编译。

使用CubeMx配置引脚

配置时钟

使用外部时钟。


配置管脚

PA8脚外接一个LED。将PA8脚配置成输出模式。


配置项目信息


不要选择"Generate peripheral initialization as a pair of '.c/.h' file per peripheral"

生成代码

点击"GENERATE CODE",生成代码。

关闭CubeMx

代码生成后,要先关闭CubeMx。

随后rtt-studio会将原先的stm32f4xx_hal_conf.h备份,代码内会引用CubeMx刚刚生成的stm32f4xx_hal_conf.h

排除构建

参与构建的代码

排除构建后的代码目录。

显示被排除构建的代码


排除构建的代码目录上有个斜杆

编译运行


使用外部时钟


说明时钟更改成功。

添加LED控制代码

添加头文件

复制代码
#include "stm32f4xx_hal.h"

管脚定义

复制代码
/* Private defines -----------------------------------------------------------*/
#define led_Pin GPIO_PIN_8
#define led_GPIO_Port GPIOA
#define USART1_TX_Pin GPIO_PIN_9
#define USART1_TX_GPIO_Port GPIOA
#define USART1_RX_Pin GPIO_PIN_10
#define USART1_RX_GPIO_Port GPIOA

管脚初始化

复制代码
/**
  * @brief GPIO Initialization Function
  * @param None
  * @retval None
  */
void MX_GPIO_Init(void)
{
  GPIO_InitTypeDef GPIO_InitStruct = {0};
/* USER CODE BEGIN MX_GPIO_Init_1 */
/* USER CODE END MX_GPIO_Init_1 */

  /* GPIO Ports Clock Enable */
  __HAL_RCC_GPIOH_CLK_ENABLE();
  __HAL_RCC_GPIOA_CLK_ENABLE();

  /*Configure GPIO pin Output Level */
  HAL_GPIO_WritePin(led_GPIO_Port, led_Pin, GPIO_PIN_RESET);

  /*Configure GPIO pin : led_Pin */
  GPIO_InitStruct.Pin = led_Pin;
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  HAL_GPIO_Init(led_GPIO_Port, &GPIO_InitStruct);

/* USER CODE BEGIN MX_GPIO_Init_2 */
/* USER CODE END MX_GPIO_Init_2 */
}

修改主函数

复制代码
static void MX_GPIO_Init(void);

int main(void)
{
    int count = 1;
    MX_GPIO_Init();
    while (count++)
    {
        LOG_D("Hello RT-Thread!");
        rt_thread_mdelay(1000);
        HAL_GPIO_WritePin(led_GPIO_Port, led_Pin, count%2);
    }

    return RT_EOK;
}

编译

总结

到此完成使用rtt-studio与stm32CubeMx联合创建项目的任务。

项目代码

使用rtt-studio与stm32CubeMx联合创建项目

相关推荐
Flittly9 小时前
【SpringAIAlibaba新手村系列】(16)调用百度 MCP 服务
java·笔记·spring·ai·springboot
瑶光守护者9 小时前
【一文读懂】OpenClaw系统架构分析:自主人工智能智能体的范式迁移与技术底座分析
人工智能·笔记·学习·系统架构·边缘计算·openclaw
Z文的博客9 小时前
嵌入式MCU与迪文屏通信:DMA+环形FIFO+变长队列+状态机完整手册
stm32·单片机·串口·dma·中断·串口dma·嵌入式单片机
BackCatK Chen10 小时前
STM32保姆级入门教程|第7章:串口通信(USART)收发数据 + printf重定向打印调试(功能超详细+CubeIDE手把手)
stm32·串口通信·usart·stm32cubeide·printf重定向·嵌入式调试·中断接收
12.=0.10 小时前
【stm32_5】Systick嘀嗒定时器、解析时钟源、分析时钟树、应用Systick设计延时
c语言·stm32·单片机·嵌入式硬件
锦瑟弦音10 小时前
金蝶二开笔记&&setCancelMessage
笔记
_李小白10 小时前
【OSG学习笔记】Day 45: osg::Camera::DrawCallback (抓取图片)
笔记·学习
达不溜的日记11 小时前
CAN总线网络传输层CanTp详解
网络·stm32·嵌入式硬件·网络协议·网络安全·信息与通信·信号处理
Java面试题总结11 小时前
2026年Java面试题最新整理,附白话答案
java·开发语言·jvm·笔记·spring·intellij-idea
Westward-sun.11 小时前
OpenCV + dlib 人脸关键点检测学习笔记(68点)
人工智能·笔记·opencv·学习·计算机视觉