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

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.html
在这里插入图片描述

KEIL_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?pwd=x9q8
提取码:x9q8

在这里插入图片描述
关于安装,直接双击,然后一路next就可以了,如果双击没反应,也可以参考这种添加PACK的方式——
keil5(MDK)导入pack包http://t.csdn.cn/gQ6vL

工程建立(STM32F407VET6为例)

1.新建工程文件夹

首先为了后期方便管理自己的代码,建议是单独新建一个专门存放程序的文件夹,每次新建工程都在这个大文件(如下图的工程代码)内再新建一个小的文件夹(LED+KEY),小文件开始,往后面尽量不要使用中文命名。
在这里插入图片描述
而后在小文件内再新建三个文件夹,分别是:
1.CMSIS——用来存放系统启动文件以及官方时钟配置文件,包括芯片启动文件.s、还有ST公司提供的标准时钟系统文件以及内核文件;
2.PROJECT——用来存放KEIL生成的工程文件以及工程输出的相关文件;
3.USER——用来存放个人文件,类似main.c、以及其他用户源文件以及头文件等等。
blog.csdnimg.cn/2a11dfb39af244d0a63ed262bb870d11.png)

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
手动添加系统文件此处不做操作,直接点击OK
在这里插入图片描述
5.然后就可以来到编辑界面了
在这里插入图片描述
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__
#include "stm32f4xx.h"



#endif

在这里插入图片描述

注意添加后要点击保存。
12.编写main.c源代码
代码如下:

#include "main.h"

int main(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/M0DSk

3.安装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.嵌入式学习笔记——使用寄存器编程操作GPIO
7.嵌入式学习笔记——寄存器实现控制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.嵌入式学习笔记——DMA
22.嵌入式学习笔记——SPI通信
23.嵌入式学习笔记——SPI通信的应用
24嵌入式学习笔记——IIC通信

  • 10
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值