准备工作¶
Note
'准备工作' 是设置主控系统的第一步,使得系统能够运行基本功能。 本节重点介绍主控板的基本设置。注意,为了方便参考和移植,在本节中只涉及到核心板主板的配置,外设配置被放在对应章节中,在添加外设硬件和软件时,只需要在CUBEMX中使能相关引脚和功能即可,不会影响到既有功能。
硬件准备¶
为了编程主控板,我们需要三个组件:
- 主控板 - 嵌入 MCU 的开发板
- USB-TTL 适配器 - 将主控板连接到计算机
- 调试器(ST-LINK V2、J-LINK 等) - 用于编程主控板
组件 1 - 主控板 - FANKE743¶
-
产品链接
产品链接
组件 2 - USB-TTL 适配器¶
-
产品链接
产品链接
组件 3 - 调试器¶
-
产品链接
产品链接
Info
CMSIS-DAP, ST-LINK, J-LINK等调试器都可以用于编程主控板。任何一种调试器都可以用来对主控板进行编程。
硬件连接¶
将三个组件按照上图所示进行连接。然后将 USB-TTL 适配器连接到计算机的 USB 端口,将调试器连接到计算机的 USB 端口。
软件准备¶
STM32CUBEMX¶
STM32CUBEMX 是一个图形化工具,允许非常轻松地配置 STM32 微控制器,并通过分步过程生成相应的初始化 C 代码。可以从 官方网站 下载并安装 STM32CubeMX。
KEIL MDK¶
KEIL MDK 是一个适用于广泛的 ARM Cortex-M 系列微控制器设备的完整软件开发环境。可以从 官方网站 下载并安装 KEIL MDK。
软件设置¶
在 STM32CUBEMX 中创建新项目¶
新建项目¶
打开 STM32CubeMX,点击“文件”选项卡,然后选择“新建项目”选项。
选择 MCU 系列和型号¶
选择 MCU 系列和 MCU 型号。然后点击“开始项目”。
启用内存保护单元¶
启用“内存保护单元”,并点击“YES”。
项目信息和代码生成配置¶
首先按照上图所示设置项目信息和代码生成配置。然后点击“生成代码”。
系统配置¶
让我们回到 Pinout & Configuration(引脚配置)选项卡,并按照下图配置系统。
系统核心 - SYS: 时间基准源¶
选择“SYS”选项卡,然后将“时间基准源”选择为“SysTick”。
系统核心 - RCC: 高速时钟 (HSE) 和低速时钟 (LSE)¶
选择“RCC”选项卡,并按照上图配置“高速时钟 (HSE)”和“低速时钟 (LSE)”。两者均设置为“晶体/陶瓷谐振器”。通常来说,外部晶振比内部 RC 振荡器更精确。
系统核心 - CORETEX_M7: 启用 I-Cache、D-Cache 和 MPU¶
选择“CORETEX_M7”选项卡,并按照上图启用“I-Cache”、“D-Cache”和“MPU”。某些高级功能需要启用 I-Cache、D-Cache 和 MPU,例如 X-CUBE-AI。
定时器 - RTC: 启用 RTC¶
选择“RTC”选项卡,并按照上图启用“RTC”。RTC 是一个实时时钟,可以用于跟踪当前时间和日期。这里我们启用 RTC 以备将来的应用。
跟踪和调试 - DEBUG: 启用串行线¶
选择“DEBUG”选项卡,并按照上图启用“串行线”。串行线是一种调试接口,允许调试器与 MCU 通信。
时钟配置¶
按照上图配置时钟。时钟配置对 MCU 正常运行至关重要。
Note
到目前为止,我们已经完成了MCU的基本配置,可以最后检查一下目前的配置然后点击“生成代码”按钮生成代码。我们会在接下来的章节中继续配置软件环境。
Tip
简洁起见,我没有在此处展示所有的配置选项。相反,这些配置根据各自功能被分成了几个部分分散在不同章节中。在实践中,可以把所有需要用到的配置一次性配置完成。
生成与更新代码¶
接下来,我们生成代码以保存当前进度,并使其准备好进行后续的编程步骤。点击屏幕右上角的“生成代码”按钮。
项目结构¶
项目结构如下图所示:
KEIL中项目结构如下:
KEIL中包含路径列表如下::