嵌入式学习笔记——STM32单片机开发前的准备

张开发
2026/4/16 8:32:36 15 分钟阅读

分享文章

嵌入式学习笔记——STM32单片机开发前的准备
STM32单片机开发前的准备1.集成开发环境的选取STM32 CubeIDEKEIL_MDK2.KEIL_MDK环境搭建安装包获取及安装芯片包下载及安装工程建立(STM32F407VET6为例)1.新建工程文件夹2.获取对应芯片的系统文件3.新建工程3.安装ST-LINK以及CH340的驱动4.设置KEIL并烧录本文重点M4系列目录1.集成开发环境的选取前面两篇主要是围绕单片机做了一些概述本开始正式进入STM32的开发准备。首先是开发环境的选取得益于发展时间比较长单片机的开发环境已经变得集成化程度愈来愈高了针对STM32有着多款IDE集成开发环境可以选择例如常见的KEIL MDK、IAR、VScode、STM32 CubeIDE。注IDE集成开发环境Integrated Development Environment 是用于提供程序开发环境的应用程序一般包括代码编辑器、编译器、调试器和图形用户界面等工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。所有具备这一特性的软件或者软件套组都可以叫集成开发环境。——来自百度百科对于IDE的解释。STM32 CubeIDE当然ST公司也有自己的开发环境STM32 CubeIDE配合其图形化编程软件STM32CubeMX可以很大程度上节约用户编写片内外设底层代码的时间以及调试成本配合其HAL库也有着不错的开发体验本系列暂时选用KEIL MDK配合寄存器开发后面有时间笔者再安排使用ST公司自家开发全家桶进行介绍。想要了解的也可以去其官网查看https://www.st.com/zh/development-tools/stm32-software-development-tools.htmlKEIL_MDK进入KEIL官网点击产品选择Arm Cortex-M然后就可以看见MDK的界面了。我们可以看见MDK集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务是一个STM32开发常用的IDE。2.KEIL_MDK环境搭建KEIL有专门针对学生和个人开发者的免费社区版直接在这点击下载即可推荐大家下载5.35以前的版本新版的编译器什么的都更新了会造成例程都无法编译通过的尴尬局面还得自己手动切换编译器。安装包获取及安装关于KEIL的获取和安装网上资料很多这里给大家贴个链接Keil5MDK(MDK-Community edition)社区版安装教程http://t.csdn.cn/Xw2gd如果看完还有错误或者想要详细安装文档以及5.25版本安装包的可以私信笔者发给你。芯片包下载及安装MDK安装好后其默认是没有STM32的芯片包的需要我们自己下载并添加这里记录手动下载及安装的方式首先进入KEIL的官网找到芯片包的下载地址在新界面点击software Pscks或者直接点击下方链接进去选择对应型号的芯片包下载并安装。https://www.keil.com/dd2/pack/查找到自己需要的芯片信号然后点击下载选择接受然后等待下载完毕。由于是外网下载可能很慢或者说下载不了的直接点击这个链接进去网盘下载——链接:https://pan.baidu.com/s/1q9zMc6tJE7gD8M2EzwfedA?pwdx9q8提取码:x9q8关于安装直接双击然后一路next就可以了如果双击没反应也可以参考这种添加PACK的方式——keil5MDK导入pack包http://t.csdn.cn/gQ6vL。工程建立(STM32F407VET6为例)1.新建工程文件夹首先为了后期方便管理自己的代码建议是单独新建一个专门存放程序的文件夹每次新建工程都在这个大文件如下图的工程代码内再新建一个小的文件夹LEDKEY小文件开始往后面尽量不要使用中文命名。而后在小文件内再新建三个文件夹分别是:1.CMSIS——用来存放系统启动文件以及官方时钟配置文件包括芯片启动文件.s、还有ST公司提供的标准时钟系统文件以及内核文件2.PROJECT——用来存放KEIL生成的工程文件以及工程输出的相关文件3.USER——用来存放个人文件类似main.c、以及其他用户源文件以及头文件等等。2.获取对应芯片的系统文件我们要从哪儿获取CMSIS文件夹内的系统文件呢还是在ST官网直接在搜索栏搜索需要新建工程的芯片型号例如笔者此处使用的就是“STM32F407VE”然后点击检索出来对应的芯片型号然后点击工具与软件在此栏往下翻找到我们所需的文件。需要一直往下拉找到STM32F4 DSP和标准外设库。https://www.st.com/zh/embedded-software/stsw-stm32065.html找到后点击前面的STSW-STM32065蓝色字样。在弹出的新界面下拉找到获取软件选择版本这里笔者用的是1.4版本新版本都已经出到1.8了建议保持一致新版可能会出现不知名问题。版本选择后点击获取接收协议填写信息就可以下载了。下载完成之后解压是下图所示的样子我们所需的系统文件就在此文件里面去复制。这里我们主要要使用Libraries——----CMSIS文件夹里面的东西首先第一步就需要把这里面的Include文件夹整个拷贝到我们的之前新建的CMSIS文件夹下。然后第二步需要把Device----ST-------STM32F4xx------Source--------Template--------arm里面的F4通用启动文件“startup_stm32f40_41xxx.s”拷贝一份去我们自己的CMSIS文件夹下。到此步骤我们之前自己新建的CMSIS文件夹已经有了两个内容。刚刚的启动文件还需要调用“system_stm32f4xx.c”里面的部分函数。因此我们也需要将STM32F4xx_DSP_StdPeriph_Lib_V1.4.0—Libraries------CMSIS----Device—ST----STM32F4xx----Source-----Template文件下的“system_stm32f4xx.c”拷贝到我们的CMSIS文件夹。此文件是时钟配置文件。根据习惯既然有.c文件那么必然还有一个.h文件与之对应因此我们还需要拷贝两个头文件过来。路径如下STM32F4xx_DSP_StdPeriph_Lib_V1.4.0--------Libraries-------CMSIS-------Device----ST-----STM32F4xx----------Include如下图所示两个文件都要拷贝去CMSIS文件夹。经过上面的操作我们找齐了工程所需的配置文件一共五个如下图所示至此CMSIS文件夹的内容暂时告一段路然后就是使用MDK开始新建工程。3.新建工程1.首先双击打开KEIL点击工程--------新建工程2.在弹出的框内选择我们上一步新建好的PROJECT文件夹然后给工程命名最后点击保存。3.此步骤是选择芯片型号的在Search款内输入你想要新建工程的单片机型号。例如笔者此处为STM32F407VE然后点击2号框位置的小加号选中下面的绿色文件这个才是芯片此时右边蓝框中会出现芯片信息说明成功。然后点击OK。注此步骤中如果出现搜说不到芯片或者没有此型号的芯片则说明芯片包没有安装好需要返回上面的步骤重新获取和安装芯片包。4.接下来是拉取系统文件以及启动文件等其他配置文件的选项这里我们不需要KEIL自动拉取等会自己手动添加即可。想要尝试KEIL帮忙生成的可以查看此文——MDK-Arm Keil uVision5 创建STM32工程http://t.csdn.cn/E03q0。手动添加系统文件此处不做操作直接点击OK5.然后就可以来到编辑界面了6.点击上方文件夹类似品字的按钮载弹出框找到2的位置点击然后在下发框内添加CMSIS回车再次点击2所在位置 回车。7.按下图添加文件进入工程文件夹。添加完成后如下图所示点击OK后编辑界面如下图所示8.添加头文件目录进入工程为了让编译器能够找到.h文件我们还需要手动添加头文件路径按照下图所示依次选中添加CMSIS、CMSIS/Include、USER、USER/inc文件夹路径即可。正确添加后是如下图所示9.新建main.c以及main.h点击1的新建然后点击2保存在弹出的框内选择之前新建好的USER文件夹命名为main.c然后重复上述步骤再新建main.h并保存到USER文件夹。10.添加main.c进入工程按照如下步骤操作。成功添加后如下图所示11.编写main.h头文件此步骤主要是让编译器编译main.h且只编译一次。代码如下#ifndef _MAIN_H__ #define _MAIN_H__ #includestm32f4xx.h#endif注意添加后要点击保存。12.编写main.c源代码代码如下#includemain.hintmain(void){while(1)//防止程序跑飞{}}13.添加“STM32F40_41xxx”宏定义添加步骤如下图所示记得点击OK。添加原因在stm32f40xx.h中有一个宏判断如果没有宏定义STM32F40_41xxx的话会编译报错。14.全编译检查工程搭建点击上方红框所示位置等待编译结束应该出现0errors,0warings。就说明工程已经搭建好了。注如果出现以下错误./CMSIS/Include\core_cmFunc.h(614): error: unknown register name ‘vfpcc’ in asm这个是编译器版本问题修改编译器版本为use default compiler version 5,并重新编译即可解决这里给贴一个大佬总结的步骤很详细看完如果还有不行的可以把问题留在评论区。STM32新建工程http://t.csdn.cn/M0DSk3.安装ST-LINK以及CH340的驱动这两个也都是直接双击一直下一步就行了安装成功后在计算机管理里面即可查看到这两个需要安装包的可以私信哈。4.设置KEIL并烧录按照以下步骤选择ST-LINK下载器并点击setting.在红框位置可以看见0xxxxxxx的内核号即可。如果没有内核号有可能是连接出了问题需要检查接线。内核号查询没问题后点击确定。然后就可以开始烧录了点击一号框的LOAD等待2位置出现100%标明烧录完毕。至此整个开发环境就已经全部跑通了。接下来就可以开始编程了。本文重点STM32工程的创建工程格式。环境搭建以及烧录由于整个过程实在是太多篇幅了中间有些步骤省略了如果有需要更详细介绍的可以私信笔者。M4系列目录1.嵌入式学习笔记——概述2.嵌入式学习笔记——基于Cortex-M的单片机介绍3.嵌入式学习笔记——STM32单片机开发前的准备4.嵌入式学习笔记——STM32硬件基础知识5.嵌入式学习笔记——认识STM32的 GPIO口6.嵌入式学习笔记——使用寄存器编程操作GPIO7.嵌入式学习笔记——寄存器实现控制LED小灯8.嵌入式学习笔记——使用寄存器编程实现按键输入功能9.嵌入式学习笔记——STM32的USART通信概述10.嵌入式学习笔记——STM32的USART相关寄存器介绍及其配置11.嵌入式学习笔记——STM32的USART收发字符串及串口中断12.嵌入式学习笔记——STM32的中断控制体系13.嵌入式学习笔记——STM32寄存器编程实现外部中断14.嵌入式学习笔记——STM32的时钟树15.嵌入式学习笔记——SysTick(系统滴答)16.嵌入式学习笔记——M4的基本定时器17.嵌入式学习笔记——通用定时器18.嵌入式学习笔记——PWM与输入捕获上19.嵌入式学习笔记——PWM与输入捕获下20.嵌入式学习笔记——ADC模数转换器21.嵌入式学习笔记——DMA22.嵌入式学习笔记——SPI通信23.嵌入式学习笔记——SPI通信的应用24嵌入式学习笔记——IIC通信

更多文章