跳转至

准备工作

Note

'准备工作' 是设置主控系统的第一步,使得系统能够运行基本功能。 本节重点介绍主控板的基本设置。注意,为了方便参考和移植,在本节中只涉及到核心板主板的配置,外设配置被放在对应章节中,在添加外设硬件和软件时,只需要在CUBEMX中使能相关引脚和功能即可,不会影响到既有功能。

硬件准备

为了编程主控板,我们需要三个组件:

  • 主控板 - 嵌入 MCU 的开发板
  • USB-TTL 适配器 - 将主控板连接到计算机
  • 调试器(ST-LINK V2、J-LINK 等) - 用于编程主控板

组件 1 - 主控板 - FANKE743

MAIN_CONTROL

组件 2 - USB-TTL 适配器

USB_TTL_ADAPTER

组件 3 - 调试器

DEBUGGER

Info

CMSIS-DAP, ST-LINK, J-LINK等调试器都可以用于编程主控板。任何一种调试器都可以用来对主控板进行编程。

硬件连接

CONNECTION

将三个组件按照上图所示进行连接。然后将 USB-TTL 适配器连接到计算机的 USB 端口,将调试器连接到计算机的 USB 端口。

软件准备

STM32CUBEMX

STM32CUBEMX 是一个图形化工具,允许非常轻松地配置 STM32 微控制器,并通过分步过程生成相应的初始化 C 代码。可以从 官方网站 下载并安装 STM32CubeMX。

KEIL MDK

KEIL MDK 是一个适用于广泛的 ARM Cortex-M 系列微控制器设备的完整软件开发环境。可以从 官方网站 下载并安装 KEIL MDK。

软件设置

在 STM32CUBEMX 中创建新项目

新建项目

STM32CUBEMX

打开 STM32CubeMX,点击“文件”选项卡,然后选择“新建项目”选项。

选择 MCU 系列和型号

NEW PROJECT

选择 MCU 系列和 MCU 型号。然后点击“开始项目”。

启用内存保护单元

Memory Protection

启用“内存保护单元”,并点击“YES”。

项目信息和代码生成配置

Project Information

Project Code Generation

首先按照上图所示设置项目信息和代码生成配置。然后点击“生成代码”。

系统配置

让我们回到 Pinout & Configuration(引脚配置)选项卡,并按照下图配置系统。

系统核心 - SYS: 时间基准源

SYS

选择“SYS”选项卡,然后将“时间基准源”选择为“SysTick”。

系统核心 - RCC: 高速时钟 (HSE) 和低速时钟 (LSE)

RCC

选择“RCC”选项卡,并按照上图配置“高速时钟 (HSE)”和“低速时钟 (LSE)”。两者均设置为“晶体/陶瓷谐振器”。通常来说,外部晶振比内部 RC 振荡器更精确。

系统核心 - CORETEX_M7: 启用 I-Cache、D-Cache 和 MPU

CORETEX_M7

选择“CORETEX_M7”选项卡,并按照上图启用“I-Cache”、“D-Cache”和“MPU”。某些高级功能需要启用 I-Cache、D-Cache 和 MPU,例如 X-CUBE-AI。

定时器 - RTC: 启用 RTC

RTC

选择“RTC”选项卡,并按照上图启用“RTC”。RTC 是一个实时时钟,可以用于跟踪当前时间和日期。这里我们启用 RTC 以备将来的应用。

跟踪和调试 - DEBUG: 启用串行线

DEBUG

选择“DEBUG”选项卡,并按照上图启用“串行线”。串行线是一种调试接口,允许调试器与 MCU 通信。

时钟配置

CLOCK

按照上图配置时钟。时钟配置对 MCU 正常运行至关重要。

Note

到目前为止,我们已经完成了MCU的基本配置,可以最后检查一下目前的配置然后点击“生成代码”按钮生成代码。我们会在接下来的章节中继续配置软件环境。

Tip

简洁起见,我没有在此处展示所有的配置选项。相反,这些配置根据各自功能被分成了几个部分分散在不同章节中。在实践中,可以把所有需要用到的配置一次性配置完成。

生成与更新代码

接下来,我们生成代码以保存当前进度,并使其准备好进行后续的编程步骤。点击屏幕右上角的“生成代码”按钮。

项目结构

项目结构如下图所示:

FILE STRUCTURE

KEIL中项目结构如下:

PROJECT STRUCTURE

KEIL中包含路径列表如下::

INCLUDE PATH