本篇参考 《传感网应用开发职业技能等级认证》培训教材
1.建立工程存放的文件夹
在 D 盘根目录新建文件夹“STM32_WorkSpace”用于保存所有的任务工程,然后在该文件夹下新建文件夹“task1_ProjectFirst”用于保存本任务工程;不能有中文路径;
2.新建 STM32CubeMX 工程
打开 STM32CubeMX 工具,点击“ACCESS TO MCU SELECTOR(选择 MCU)”按钮,如图图1所示;
进入“MCU 选择”窗口,如图 2 所示。在图 2 中的标号①处,输入 MCU 型号的关键字,如:STM32F103VE。点击标号②处的MCU 型号,然后点击标号③处的“Start Project”按钮新建 STM32CubeMX 工程;
3.配置调试端口
以 ST-Link 仿真器为例,讲解调试端口的配置过程。
展开“Pinout & Configuration”标签页左侧的“System Core(系统内核)”选项(图 3中标号①处),选择“SYS(系统)”选项(图 3 中标号②处),将“Debug(调试)”下拉菜单改为“Serial Wire(串口线)”选项(图 3中标号③处)。即可将“PA13”引脚配置为 SWDIO 功能(图 3 中标号⑤处),“PA14”引脚配置为 SWCLK 功能(图 3 中标号④处)
4.配置 MCU 时钟树
选择“Pinout & Configuration”标签页左侧的“RCC(复位、时钟配置)”选项,如图 4 的标号①所示。将 MCU 的“High Speed Clock(HSE,高速外部时钟)”配置为
“Crystal/Ceramic Resonator(晶体/陶瓷谐振器)”,如图 4的标号②所示。同样地,将 MCU 的“Low Speed Clock(LSE,低速外部时钟)”配置为“Crystal/Ceramic Resonator(晶体/陶瓷谐振器)”,如图 4的标号③所示。配置完毕后,MCU 的“Pinout View(引脚视图)”中相应的引脚功能将被配置,如图 4中的标号④和⑤所示。
切换到“Clock Configuration(时钟配置)”标签,进行 STM32 微控制器的时钟树配
置,如图 5 所示。图中各个标号的含义如下:
标号①:“PLL Source MUX(锁相环时钟源选择器)”的时钟源选择为“HSE”,即:8MHz外部晶体谐振器;
标号②:“PLLMul(锁相环倍频)”配置为“9”;
标号③:“System Clock MUX(系统时钟选择器)”的时钟源选择为“PLL”;
标号④:配置“SYSCLK(系统时钟)”为 72MHz;
标号⑤:配置“HCLK(高性能总线时钟)”为 72MHz;
标号⑥:配置“Cortex System timer(Cortex 内核系统嘀嗒定时器)”的时钟源为 HCLK的八分之一,即:9MHz;
标号⑦:配置“APB1 Peripheral clocks(低速外设总线时钟)”为 HCLK 的二分频,即:36MHz。
标号⑧:配置“APB2 Peripheral clocks(高速外设总线时钟)”为 HCLK 的一分频,即:72MHz。
5.配置 GPIO 功能
开发板的“PE6”引脚与 LED 灯——“LED2”相连。在 STM32CubeMX 工具的配置主界面,用鼠标左键点击 MCU 的“PE6”引脚处,选择功能“GPIO_Output”。如图 6所示。
然后用鼠标右键点击“PE6”引脚,选择“Enter User Label”选项,输入值“LED2”,将“PE6”引脚的“用户标签”值配置为“LED2”,点击“GPIO”,选中“PE6”,确保 PE6 引脚的配置如图 7 中的④~⑥所示。
6.保存 STM32CubeMX 工程
点击“File(文件)”菜单,选择“Save Project(保存工程)”选项,如图 8 中标号①和标号②所示。然后定位到文件夹“D:\STM32_WorkSpace\task1_ProjectFirst”,点击“确定”保存 STM32CubeMX 工程;
7.生成 C 代码初始工程
切换到“Project Manager(工程管理)”标签,进行“C 代码工程”的配置,如图 9所示。
点击左侧“Code Generator(代码生成)”配置标签,将“STM32Cube Firmware Library
Package”单选框的选项改为“Copy only the necessary library files”,如图 9中的标号①所示。在“Generated files”复选框中增加勾选“Generate peripheral initializationas a pair of “.c/.h” files per peripheral”选项。如图 9 中标号②所示。点击左侧的“Project(工程)”配置标签进行“C 代码工程”保存的相关配置。由于之前已保存过 STM32CubeMX 的工程,因此“Project Name(工程名)”和“Project Location(工程存放位置)”处的信息已填好(分别如图 10 的标号①和标号②处所示)。
点击图 10 中的“Toolchain/IDE”下拉菜单(图 10中标号③处),选择集成开发环境为“MDK-ARM V5”。最后点击“GENERATE CODE(生成代码)”按钮(图 10中标号④处),即可生成相应的C 代码工程。
8.完善 main()函数
生成的 C 代码工程位于工程文件夹中的“MDK-ARM”中,如图 11中的标号①处所示。双击工程文件(图 11中标号②处),使用 MDK-ARM 工具打开:
打开后的工程如图 12 所示,展开左侧的“工程列表”窗口,打开“main.c”文件(图 12 的标号①处),在 while(1)代码段中添加标号②处所示的两行代码。
9. C 代码工程配置
点击快捷工具栏中的魔术棒图标进行 C 代码工程的配置(图 13 中标号①处)。切换到“Debug”标签(图 13 中标号②处),选择相应的调试工具,如:ST-Link Debugger(图 13 中标号③处)。
点击图 13 中的“Settings”按钮(标号④处)进入“调试与下载配置”界面,将调试工具端口改为“SW”,如图 14 子图(a)中标号①处所示。如果 STM32 微控制器连接正常,则会在右上角的“SW Device”窗口看到已连接的设备(图 14 子图(a)中标号②处)。点击“Flash Download”标签切换到“下载配置”界面(图 14 子图(b)中的标号③处),勾选“Reset and Run”选项(图 14 子图(b)中的标号④处)。经过这样的配置以后,程序下载到 STM32 开发板后会自动重启并运行。
9. 编译工程、下载并运行
将 M3 主控模块板的 JP1 拨码开关拨向“boot”模式,如图16 M3 主控模块板烧写设置所示。可点击工具栏中的“Build(F7)”按钮进行工程的编译。编译无误后,点击工具栏中的“DownLoad(F8)”按钮进行工程的下载并运行。如图 16 中的标号①和标号②处所示。烧写完成后,再拨到NC模式,按复位键,观察LED灯;
本工程运行的现象是 LED2 闪烁,亮 1 秒灭 1 秒,周期为 2 秒。
——————————————————————————————
总结:基于微控制器最小系统运行原理,工程创建的关键步骤是对MCU的必要资源进行配置,其中下载端口配置,MCU时钟配置是每一个工程项目创建都必须的步骤;另外,注意工程创建的英文路径,以及保存工程前的基本配置;在编译工程,下载并运行环节,
参考文档,,可以帮助理解ST-LINK下载原理和BOOT启动模式;
(https://blog.csdn.net/wwt18811707971/article/details/78678059?utm_medium)