# STM32CubeMX软件生成工程

> *本小节以 MiaowLabs-STM32F1-Micro 控制板为例，教你使用 STM32CubeMX 软件生成工程，然后使用 MDK-ARM 5.17 软件编译工程。*
>
> *例程代码基于 STM32Cube FW\_F1 V1.7.0。*

## 开始配置

打开 STM32CubeMX 软件，点击「ACCESS TO MCU SELECTOR」。

![](https://2011909777-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M67lRNhuxxvrxkdlH7t%2Fsync%2F9f87cb97113a2b9068a85515bfc196f94516cc7f.png?generation=1588211432389102\&alt=media)

## 选择芯片

点击「ACCESS TO MCU SELECTOR」之后，进入选择芯片型号界面。

![](https://2011909777-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M67lRNhuxxvrxkdlH7t%2Fsync%2Fa7f5d8a0fbf768caefbfb535d08122b12c41b1b4.png?generation=1588211433761944\&alt=media)

MiaowLabs-STM32F1-Micro 控制板上的 MCU 型号为 STM32F103C8T6，因此我们要找到 STM32F103C8T6 芯片，有两种方法：

> * 第一种：搜索框大法。在 Part Number Search 搜索框中输入我们用到的芯片型号，本例中输入「STM32F103」。右边的 MCUs List 就会显示相关型号，能够轻易地找到 STM32F103C8T6 型号。

![](https://2011909777-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M67lRNhuxxvrxkdlH7t%2Fsync%2Fe8e387a86d4b2321cb6904b13fcb26b64bbc3501.png?generation=1588211433199101\&alt=media)

> * 第二种：按图索骥法。在左边选择下拉列表慢慢筛选，直至筛选出想要的芯片：
>
>   > * 根据 Core（内核）选择。如：ARM Cortex-M3...
>   > * 根据 Series（系列）选择。如：F0、F1、F2...
>   > * 根据 Line（产品线）选择。
>   > * 根据 Package（封装）选择。
>   > * 等等，不一一展开说明。

经过搜索或筛选，看到 STM32F103C8T6 芯片型号，双击选择芯片。

## 工程配置

双击选择芯片后，就会进入芯片的工程配置界面。

![](https://2011909777-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M67lRNhuxxvrxkdlH7t%2Fsync%2F2e08dea696dbffcfa2b7972b603b28ffd23c5f08.png?generation=1588211432194975\&alt=media)

点击 Project Manager，切换到工程设置界面，并对工程设置进行基本设置。

![](https://2011909777-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M67lRNhuxxvrxkdlH7t%2Fsync%2F0c4bf5e77e2a355deba41f80429426b7caf31106.png?generation=1588211434170682\&alt=media)

其中，工程名称为 MiaowLabs-Demo，工程目录存放在电脑桌面，IDE 工具选择 MDK-ARM V5，其他默认，点击 OK 即可。如果提示工程路径 d 盘不存在，那么修改路径中的 d 为 D 即可，大小写是有区别的。

默认情况下，STM32cubeMX 软件会把不生成主函数的选勾给打上，我们要把选勾去掉。

![](https://2011909777-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M67lRNhuxxvrxkdlH7t%2Fsync%2F078b63e6d3a1ef75d0ea9fb1cd3e201786167185.png?generation=1588211432805676\&alt=media)

本小节的目的只是演示一遍如何新建工程，所以，我们暂时不配置芯片的引脚。我们点击右上方的 GENERATE CODE，生成代码。

![](https://2011909777-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M67lRNhuxxvrxkdlH7t%2Fsync%2F017763f11fdb981d0821ed9f7964c00e82270d4f.png?generation=1588211431957739\&alt=media)

生成代码进度条结束后，会弹出提示框。

![](https://2011909777-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M67lRNhuxxvrxkdlH7t%2Fsync%2Ffa92f8bad1d46fdf65e0e68d7a533050543e4079.png?generation=1588211433590931\&alt=media)

点击 Open Folder，会打开工程的文件夹；点击 Open Project，会直接打开 MDK 工程；点击 Close，则不进行任何操作，并关闭该对话框。

我们点击 Close ，关闭该对话框，回到电脑桌面，会发现工程文件夹已经创建好了，我们打开该文件夹可以看到一些文件夹和文件。

![](https://2011909777-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M67lRNhuxxvrxkdlH7t%2Fsync%2F26634772453505527b37ab002c21ee0161b4e730.png?generation=1588211432538036\&alt=media)

其中，Drivers 文件夹存放 HAL 库的底层驱动文件，Inc 存放配置头文件，Scr 存放配置源文件，MDK-ARM 存放 MDK-ARM 工程文件，MiaowLabs-Demo.ioc 是 STM32CubeMX 的工程文件。

我们进入 MDK-ARM 文件夹，会看到一些文件夹和 MDK-ARM 工程文件。其中，MiaowLabs-Demo.uvprojx 是 MDK-ARM 工程文件。

![](https://2011909777-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M67lRNhuxxvrxkdlH7t%2Fsync%2Fe2991eb301bffd393b6273e2c806d0af15c3e1c3.png?generation=1588211432977410\&alt=media)

双击 MiaowLabs-Demo.uvprojx，MDK-ARM 软件自动运行并打开该工程。

![](https://2011909777-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M67lRNhuxxvrxkdlH7t%2Fsync%2Fe2991eb301bffd393b6273e2c806d0af15c3e1c3.png?generation=1588211432977410\&alt=media)

我们对打开的工程进行编译，发现没有提示错误。

![](https://2011909777-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M67lRNhuxxvrxkdlH7t%2Fsync%2Fec822a8bb94d9844e9d04901e57e2d48d372d20b.png?generation=1588211433466039\&alt=media)

到这里，我们的工程已经新建成功，是不是觉得其实很简单？接下来的章节，我会继续教你深入使用 STM32CubeMX 配置 STM32 的引脚功能，让我们放轻松，一步一个脚印，稳步前行，你会发现在不知不觉中就已经掌握了制作两轮自平衡小车的基础知识。
