#采用stm32cubeMX创建工程流程

本文介绍如何使用STM32CubeMX配置STM32F107VCT开发板,包括安装设置、工程创建、时钟配置、IO配置及代码生成等步骤,并给出了一段典型的main函数代码作为参考。

1、到官网下载软件

http://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-configurators-and-code-generators/stm32cubemx.html

点击get software免费获取

下载成功后,安装 SetupSTM32CubeMX-4.17.0,提示需要java环境,根据提示下载java 插件jxpiinstall,安装很简单,不赘述。最后在安装路径下,生成图标 STM32CubeMX,点击进入图形化cube界面。

提示:安装路径和之后的源码包路径最好不要出现中文,需要java插件和CubeMX软件本身的编写语言,运行环境相关。楼主用的是win7旗舰版64位系统,运行良好。

2、配置工程

打开cubeMX,如下:

这里写图片描述

点击“New Project”,新建一个工程,具体配置如下:
说明:楼主配置的是stm32f107VCT,具体型号可自行选择

这里写图片描述

这是配置的 FreeRTOS + lwip + FS + USB + RTC + IO的实例

这里写图片描述

接着配置时钟

这里写图片描述

IO普通配置,输入、输出等等简单配置

这里写图片描述

这是整体的代码结构,可以点击配置OS、lwip、usb、fatfs的一些参数,和移植这些组件一样,配置会改变相应的宏,最后生成相应代码

这里写图片描述

3、生成代码

生成代码,需要相应的源码固件库(包含了hal驱动和中间件),这里加载了F1系列的1.4.0版本。
点击“help”–>“install newlibraries”,进入第二个界面,选择需要的固件包,进行下载。
(楼主直接升级1.4.0版本,出现下载失败,然后先下载了1.3.1,再下载了1.4.1就可以了,不知道什么原因)

这里写图片描述
这里写图片描述

最后一步,成功工程文件,这里填写工程名字,保存路径和用到的IDE类型。楼主用的keil472,其他参数可以根据需求更改

这里写图片描述

4、打开工程

现在开工工程看一下吧,生成的代码结构比较清晰,可以根据自己的需求进行修改,编译没有错误

这里写图片描述

5参考

附上一段生成的main函数代码,供参考,比较规范

int main(void)
{

  /* USER CODE BEGIN 1 */

  /* USER CODE END 1 */

  /* MCU Configuration----------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* Configure the system clock */
  SystemClock_Config();

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_ADC1_Init();
  MX_SPI1_Init();
  MX_TIM2_Init();
  MX_WWDG_Init();
  MX_RTC_Init();

  /* USER CODE BEGIN 2 */

  /* USER CODE END 2 */

  /* USER CODE BEGIN RTOS_MUTEX */
  /* add mutexes, ... */
  /* USER CODE END RTOS_MUTEX */

  /* USER CODE BEGIN RTOS_SEMAPHORES */
  /* add semaphores, ... */
  /* USER CODE END RTOS_SEMAPHORES */

  /* USER CODE BEGIN RTOS_TIMERS */
  /* start timers, add new ones, ... */
  /* USER CODE END RTOS_TIMERS */

  /* Create the thread(s) */
  /* definition and creation of defaultTask */
  osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 128);
  defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);

  /* definition and creation of myTask02 */
  osThreadDef(myTask02, StartTask02, osPriorityIdle, 0, 128);
  myTask02Handle = osThreadCreate(osThread(myTask02), NULL);

  /* USER CODE BEGIN RTOS_THREADS */
  /* add threads, ... */
  /* USER CODE END RTOS_THREADS */

  /* Create the queue(s) */
  /* definition and creation of myQueue01 */
  osMessageQDef(myQueue01, 16, uint16_t);
  myQueue01Handle = osMessageCreate(osMessageQ(myQueue01), NULL);

  /* USER CODE BEGIN RTOS_QUEUES */
  /* add queues, ... */
  /* USER CODE END RTOS_QUEUES */


  /* Start scheduler */
  osKernelStart();

  /* We should never get here as control is now taken by the scheduler */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
  /* USER CODE END WHILE */

  /* USER CODE BEGIN 3 */

  }
  /* USER CODE END 3 */

}

附一些链接供参考:

配置cube教程文章
下载源码包失败解决方法

### STM32CubeMX 创建工程教程 STM32CubeMX 是由意法半导体(STMicroelectronics)提供的一款图形化配置工具,用于简化基于 STM32 微控制器的嵌入式系统的开发过程[^1]。以下是关于如何使用 STM32CubeMX 创建工程的具体说明。 #### 工程创建概述 STM32CubeMX 提供了一种直观的方式,允许开发者通过图形界面完成硬件资源的初始化配置以及生成初始代码框架。这种方法不仅减少了手动编写复杂初始化代码的工作量,还提高了项目的可维护性和一致性[^2]。 #### 步骤详解 ##### 1. 启动 STM32CubeMX 并加载目标芯片型号 启动 STM32CubeMX 软件后,在主界面上方选择 “New Project”,随后会弹出一个窗口让用户指定所使用的 STM32 器件型号。例如,如果计划使用的是 STM32F407,则需在此处输入或搜索该器件名称并确认[^3]。 ##### 2. 配置引脚功能与外设参数 进入设备选型后的页面可以看到整个微控制器的所有可用 GPIO 及其关联的功能模块列表。按照实际需求调整各个端口的状态及其对应的外设连接情况,比如启用 USART、SPI 或者 I2C 接口等,并设定它们各自的波特率、模式等相关属性[^4]。 ##### 3. 设置时钟树结构与时序参数 继续深入到 Clock Configuration 页面下,这里能够精确控制 MCU 的内部振荡器频率分布状况,包括 PLL 锁相环倍频因子在内的各项数值都需要依据应用场合来合理安排[^1]。 ##### 4. 定义项目基本信息及导出环境 当所有的硬件层面准备工作都已完成之后,转至 Project Manager 标签页填写必要的元数据字段——即 Project Name 和 Storage Location;接着切换 Code Generator 下拉菜单项挑选合适的 IDE/Toolchain 组合形式以便后续编译链接操作顺利开展。 最后点击 Generate Code 按钮即可自动生产一套完整的源码目录体系连同 Makefile 文件一起打包下载下来供进一步编辑完善之用。 ```c // 自动生成的主要文件之一 main.c 示例片段 int main(void){ HAL_Init(); // 初始化HAL库 SystemClock_Config();// 系统时钟配置函数调用 while (1){ // 用户程序逻辑写在这里... } } ``` 以上便是利用 STM32CubeMX 来构建新工程项目的大致流程描述。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值