【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联合创建项目

相关推荐
FakeOccupational13 分钟前
计算机科技笔记: 容错计算机设计05 n模冗余系统 TMR 三模冗余系统
笔记·科技
广药门徒30 分钟前
STM32简易计算机设计
stm32·单片机·嵌入式硬件
海棠蚀omo2 小时前
C++笔记-红黑树
开发语言·c++·笔记
Ronin-Lotus2 小时前
嵌入式硬件篇---拓展板
嵌入式硬件
天天爱吃肉82182 小时前
【低成本STM32的T-BOX开发实战:高可靠的车联网解决方案】
stm32·单片机·嵌入式硬件·云原生
龙湾开发3 小时前
计算机图形学编程(使用OpenGL和C++)(第2版)学习笔记 12.曲面细分
c++·笔记·学习·3d·图形渲染
霸王蟹3 小时前
React中巧妙使用异步组件Suspense优化页面性能。
前端·笔记·学习·react.js·前端框架
ljt27249606613 小时前
Compose笔记(二十四)--Canvas
笔记·android jetpack
霸王蟹4 小时前
React 19 中的useRef得到了进一步加强。
前端·javascript·笔记·学习·react.js·ts
霸王蟹4 小时前
React 19版本refs也支持清理函数了。
前端·javascript·笔记·react.js·前端框架·ts