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

相关推荐
_落纸7 小时前
三大基础无源电子元件——电阻(R)、电感(L)、电容(C)
笔记
Alice-YUE8 小时前
【CSS学习笔记3】css特性
前端·css·笔记·html
2303_Alpha8 小时前
SpringBoot
笔记·学习
晶振厂家-晶发电子9 小时前
晶振在5G时代的角色:高精度时钟的核心支撑
单片机·嵌入式硬件·5g·晶振·电子元器件·晶振知识
F137298015579 小时前
WD5030A 芯片,12V降5V,输出电流12A,电路设计
stm32·单片机·嵌入式硬件·汽车·51单片机
小莞尔9 小时前
【51单片机】【protues仿真】基于51单片机的篮球计时计分器系统
c语言·stm32·单片机·嵌入式硬件·51单片机
三佛科技-187366133979 小时前
分享机械键盘MCU解决方案
单片机·嵌入式硬件·计算机外设
李永奉9 小时前
51单片机-使用IIC通信协议实现EEPROM模块教程
单片机·嵌入式硬件·51单片机
工大一只猿9 小时前
51单片机学习
嵌入式硬件·学习·51单片机
小莞尔9 小时前
【51单片机】【protues仿真】 基于51单片机八路抢答器系统
c语言·开发语言·单片机·嵌入式硬件·51单片机