当前位置: 首页 > article >正文

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


http://www.kler.cn/news/305940.html

相关文章:

  • 鸿蒙 ArkUI组件一
  • 三十七、Gin完成登陆功能
  • solidity-20-sendeth
  • MySQL——数据库的高级操作(三)权限管理(2)授予权限
  • 自动驾驶自动泊车场景应用总结
  • RAII 与 std::lock_guard 在 C++ 中的应用:自动化互斥锁管理与线程安全
  • 【6大设计原则】迪米特法则:解密软件设计中的“最少知识原则”
  • 创建一个Java项目在IntelliJ IDEA中
  • 【AI绘画】Midjourney进阶:景别详解
  • 数学建模常用模型---“算法”总结(含特性和应用场景)
  • 聊天组件 Vue3-beautiful-chat
  • 【QT】实现TCP服务器,客户端之间的通信
  • 国风编曲:了解国风 民族调式 五声音阶 作/编曲思路 变化音 六声、七声调式
  • 【开源免费】基于SpringBoot+Vue.JS在线旅游网站(JAVA毕业设计)
  • 威胁建模网络与云威胁
  • SQL进阶的技巧:如何实现某列的累计乘积?
  • Codeforces Round 921 (Div. 2) A~D
  • 英飞凌MCU第五代高性能CAPSENSE技术PSoC4000T
  • Leetcode 二叉树中根遍历
  • 力扣-96.不同的二叉搜索树 题目详解
  • Android Radio2.0——动态列表回调(七)
  • tcp、http和rpc
  • WebSocket详细介绍
  • OPEN AI o1已经像人类一样思考了。。。
  • 【iOS】present和push
  • 【AcWing】快速排序的Go实现
  • yolo训练出现Could not load library libcudnn_cnn_train.so.8问题及解决方法
  • 从大脑图谱/ROI中提取BOLD信号
  • 简单易懂的方式来解释机器学习(ML)和深度学习(DL)的区别与联系
  • 通信工程学习:什么是DWDM密集波分复用