STM32单片机(二)STM32环境搭建

这篇具有很好参考价值的文章主要介绍了STM32单片机(二)STM32环境搭建。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其是STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。
☀️ 专栏适用人群 :适用于想要从零基础开始学习入门单片机,且有一定C语言基础的的童鞋。
🌙专栏目标:实现从零基础入门51单片机和STM32单片机,力求在玩好单片机的同时,能够了解一些计算机的基本概念,了解电路及其元器件的基本理论等。

⭐️ 专栏主要内容: 主要学习STM32单片机的功能、各个模块、单片机的外设、驱动等,最终玩好单片机和单片机的外设,全程手敲代码,实现我们所要实现的功能。
🌴 专栏说明 :如果文章知识点有错误的地方,欢迎大家随时在文章下面评论,我会第一时间改正。让我们一起学习,一起进步。
💑专栏主页:http://t.csdn.cn/HCD8v

本学习过程参考:https://space.bilibili.com/383400717

STM3单片机安装软件、各种资料以及源码的路径:
链接:https://pan.baidu.com/s/1snD0uuTfMhchFqOMWvAiHA?pwd=asdf#list/path=%2F
提取码:asdf

链接里压缩包的解压密码:32

本节主要对STM32环境搭建过程进行简单介绍,其中包括软件安装和新建工程两部分;其中软件安装包括安装Keil5 MDK、安装器件支持包、软件注册、安装STLINK驱动、安装USB转串口驱动等;新建工程部分包括STM32开发方式简介以及新建标准库工程等。

一、软件安装

软件的下载链接:
STM3单片机安装软件、各种资料以及源码的路径:
链接:https://pan.baidu.com/s/1snD0uuTfMhchFqOMWvAiHA?pwd=asdf#list/path=%2F
提取码:asdf

链接里压缩包的解压密码:32

1.1 安装Keil5 MDK

解压 资料/Keil5 MDK.zip,解压之后,(右键管理员权限打开)MDK524.EXE文件,开始安装软件,注意路径不要有英文,不要选择带有特殊权限的盘;选Next->勾选同意许可协议->Next->选择安装目录(如果不想放在C盘,也可以在创建英文目录,记得创建文件夹时起英文名字)->Next->填写个人信息(随便填)->Next,等待安装即可;

安装过程中会让选择是否安装ULINK驱动,选择是就行:
STM32单片机(二)STM32环境搭建
可以将Show Release Notes 取消勾选:
STM32单片机(二)STM32环境搭建

最后点击Finish,接下来就会自动弹出一个Pack Installer的窗口,这个窗口就是用来安装器件支持包的,我们先把它叉掉,后面再讲:STM32单片机(二)STM32环境搭建

1.2 安装器件支持包

首先来介绍一下为什么需要要安装器件支持包,这个支持包是Keil5才需要安装的,想Keil4和之前的老版本,是不需要安装的;这是因为现在的ARM芯片型号是非常多的,升级换代速度也快;新型号的芯片也是不断地推出来,那Keil软件总不能出一款芯片就升级一下软件吧,而且同时支持所有型号的芯片,这个占用内存也是非常大的,所以Keil5之后,芯片的器件支持包就被独立出来了;我们开发哪种芯片,就安装对应的支持包就行;如果你不安装支持包,那在新建工程时,是不会出现相应的器件型号的;

安装器件支持包有两种安装方式,一种是离线安装,一种是在线安装;

1.2.1 离线安装

首先介绍一下离线安装:
打开Keil5 MDK的安装包文件夹,打开支持包文件夹:
STM32单片机(二)STM32环境搭建

STM32单片机(二)STM32环境搭建

在这里已经提前准备了常见的支持包,我们本课程使用的是STM32F1系列, 我们就需要选择这个Keil.STM32F1xx_DFP的文件,双击打开,这里的目标路径会自动选择我们安装时的那个目录:STM32单片机(二)STM32环境搭建

直接点击Next即可,等待一小会儿即可安装完成;安装完成点击Finish即可。此时再打开Keil5软件,新建工程:
STM32单片机(二)STM32环境搭建
STM32单片机(二)STM32环境搭建

STM32单片机(二)STM32环境搭建

可以发现这里就出现了STM32F1的器件列表,展开之后我们可以选择F103,然后F103C8,这样就可以新建工程了;

STM32单片机(二)STM32环境搭建

到这里,我们离线安装器件支持包的方式就介绍完了;

1.2.2 在线安装

在线安装是离线安装的扩展部分,主要是为了防止以后开发其他芯片找不到型号;大概了解一下即可;

因为在1.2.1的安装包里,只提供了部分的器件支持包,所以如果以后想开发其他芯片,比如STM32F2的系列或者其他公司的ARM芯片,那到时候找不到器件支持包不就尴尬了嘛,,,这个时候就可以用上在线安装了。

打开keil5软件,点击下面的绿色按钮:
STM32单片机(二)STM32环境搭建
弹出来的就是我们之前叉掉的那个Pack Installer界面:

STM32单片机(二)STM32环境搭建
那这个就可以用来安装支持包,并且所有可以用keil软件来开发的芯片都可以找到,使用还是非常方便的,就是网速比较慢哈;

注意,在这个页面一定要联网;

然后进来之后它就会自动在Keil官网上获取最新的器件列表了;左下角提示的就是正在获取的东西,右边有进度条显示进度;

STM32单片机(二)STM32环境搭建

这个网速还是挺慢的,大家得多等一会儿;

如果你点进来没有自动获取的话,可以点一下这个更新按钮,这样就可以获取最新列表了:

STM32单片机(二)STM32环境搭建

点击刷新后,经过漫长的等待,这个器件列表总算是加载完了哈:

STM32单片机(二)STM32环境搭建

可以看到,这里有很多公司的名称,里面包含了Keil支持的所有ARM芯片,其中这个GigaDevice公司下,就有目前做的还不错的国产兼容STM32的芯片,叫GD32,里面有这个叫GD32F103C8的型号,基本和STM32F103C8T6的芯片一样;

STM32单片机(二)STM32环境搭建

还有下面这个MindMotion公司,里面也有MM32F103C8T,也是可以兼容STM32F103C8T6的国产芯片:

STM32单片机(二)STM32环境搭建

现在STM32涨价比较厉害,所以国产这些芯片也取得了一定的发展;大家可以了解一下;

接着往下划,下面这个STMicroelectronics里面就有STM32了,里面包含了现在STM32的所有型号,其中就有我们刚才安装的STM32F1系列:

STM32单片机(二)STM32环境搭建

那比如我们以后想要开发STM32F2的系列,我们就可以选择这个STM32F2;因为刚刚在离线安装中我们已经安装好了STM32F1,所以此次我们是拿STM32F2来演示在线下载:
在右边找到这个后缀是DFP的文件,然后点击Install,安装即可:

STM32单片机(二)STM32环境搭建

那接下来,它就会自动在Keil的官网下载DFP文件,然后自动帮我们安装上;
当然也可以用浏览器到这个网站上下载,下载之后,就和离线安装的方式是一样的了:

STM32单片机(二)STM32环境搭建

现在又是需要一段漫长的时间来下载哈,等提示完成后即可叉掉这个窗口了,叉掉后,会出来一个弹窗,如下所示,提示软件的支持包已经更改,是否要重新加载支持包,选择是就行:

STM32单片机(二)STM32环境搭建
然后再新建工程,就可以看到有STM32F2系列的芯片了:

STM32单片机(二)STM32环境搭建
STM32单片机(二)STM32环境搭建
STM32单片机(二)STM32环境搭建
这就是在线安装的整个过程了,有个印象就行;

1.3 软件注册

这个Keil软件是一个付费软件,如果不注册的话,功能上会有很大限制的,如果我们个人用户学习的话,使用盗版问题也不大,但是企业用户就必须得用正版了。

首先我们先关闭软件, 然后再Keil5图标上右键,选择以管理员身份运行(这里需要注意,必须是右键->以管理员身份运行)然后点击File->LicenseManagement,把这个CID复制下来:

STM32单片机(二)STM32环境搭建

STM32单片机(二)STM32环境搭建

然后打开安装包,将Keygen的压缩包解压:

STM32单片机(二)STM32环境搭建
打开解压后的文件夹,可以看到这个注册机(如果解压后看不到该文件,可能是被杀毒软件杀掉了,那就需要将杀毒软件关掉再重新解压),双击打开:

STM32单片机(二)STM32环境搭建
然后将刚刚复制的CID码复制进来,右边的Target选择ARM,点击Generate,
STM32单片机(二)STM32环境搭建
最后将生成的序列码复制下来,就可以退出这个软件了,

STM32单片机(二)STM32环境搭建
最后回到Keil5软件,将刚刚生成的序列码粘贴到LIC位置,点击Add LIC即可,如下图所示:
STM32单片机(二)STM32环境搭建
提示LIC添加成功,并且上面的MDK-ARM这一行的使用期限显示2032年,就表示软件注册完成了。

STM32单片机(二)STM32环境搭建

1.4 安装STLINK驱动

首先,我们需要将STLINK插到电脑上,

STM32单片机(二)STM32环境搭建

然后在 此电脑->右键->设备管理器,打开设备管理器的窗口,在其他设备里面可以看到这个STLINK是在其他设备的列表上,并且图标带了个感叹号,说明我们的电脑上目前是没有安装STLINK驱动的; 如下图所示

STM32单片机(二)STM32环境搭建
如果插上STLINK,在这个列表里找一下,能找到STLINK的设备且没有感叹号,那说明你的电脑已经装过STLINK的驱动了,就不需要进行这一步了。

如果没有安装STLINK驱动,我们则需要安装一下:

这个驱动程序Keil软件自带的就有,我们可以打开Keil5的安装目录,在ARM->STLink->USBDriver里面,找到amd64.exe就是64位的,X86是32位的:

STM32单片机(二)STM32环境搭建

我的电脑是64位的,那么双击这个64,然后一直Next即可。安装完成后,可以发现没有感叹号了:
STM32单片机(二)STM32环境搭建

另外这个目录下,还有JLINK的驱动,JLINK也是一种常用的调试器,如果你想安装JLINK驱动的话可以打开这里的Segger文件夹,

STM32单片机(二)STM32环境搭建
这里面就可以安装JLINK的驱动了。

1.5 安装USB转串口驱动

STM32单片机(二)STM32环境搭建

同样我们先把USB串口模块插在电脑上,这个USB转串口的芯片是CH340,和之前51开发板上的一样,如果之前学过51,那么大概率已经装过该驱动了。

STM32单片机(二)STM32环境搭建
如果这里有感叹号,就需要装一下驱动,如果能正常识别,就不需要装了。

CH340的驱动在资料文件夹里,打开工具软件,打开USB转串口CH340驱动,双击以下EXE程序:

STM32单片机(二)STM32环境搭建
STM32单片机(二)STM32环境搭建
点击安装

STM32单片机(二)STM32环境搭建

出现驱动安装成功就ok了;

STM32单片机(二)STM32环境搭建
设备管理器里感叹号也消失了。

二、新建工程

本小节我们来建立一个STM32的工程,STM32的工程结构还是比较复杂的,需要用到很多文件,之后我们的代码也都是需要建立在工程结构上的,所以在开始学习后续内容之前,我们先来学习以下如何新建STM32的工程;

2.1 STM32开发方式简介

目前STM32的开发方式主要有基于寄存器的方式基于标准库也就是库函数的方式基于HAL库的方式

  • 基于寄存器的方式和我们51单片机的开发方式一样,是用程序直接配置寄存器,来达到我们想要的功能;这种方式最底层、最直接、效率会更高一些;但是由于STM32的结构复杂、寄存器太多,所以基于寄存器的方式目前是不推荐的;
  • 基于库函数的方式是使用ST官方提供的封装好的函数,通过调用这些函数来间接的配置寄存器,由于ST对寄存器封装的比较好,所以这种方式既能满足对寄存器的配置,对开发人员也比较友好,有利于提高开发效率,我们本课程使用的就是库函数的开发方式;
  • 最后一个基于HAL库的方式可以利用图像化界面快速配置STM32,这个比较适合快速上手STM32的情况,但是这种方式隐藏了底层逻辑,如果你对STM32不熟悉,基本只能停留在很浅的水平,所以目前不推荐HAL库。

既然我们要使用库函数的方式,我们需要准备一个STM32库函数的压缩包,大家可以在百度云链接提供的资料里找到固件库的文件,如下图所示:

STM32单片机(二)STM32环境搭建

可以看到STM32F10x标准外设库的这个压缩包,解压后就可以看到库函数的文件夹目录了,

STM32单片机(二)STM32环境搭建

  • _htmresc文件夹里放的是图片,没啥用
  • Libraries文件夹里放的是库函数的文件了,我们之后建工程时会用到
  • Project时官方提供的工程示例和模板,以后使用库函数的时候可以参考一下;
  • Utilities是STM32官方评估板的相关例程,这个评估板就是官方用STM32做的一个小电路板,用来测评STM32的;这个文件夹里面存的就是这个小电路板的测评程序;
  • 接下来后面的两个文件,一个是库函数的发布文档,一个是使用手册;发布文档里有一些版本的说明,使用手册里有教怎么使用这些库函数的;

2.2 新建标准库工程

2.2.1 新建工程

接下来我们就正式开始新建一个基于标准库的工程,首先我们需要建立一个存放工程的文件夹,为了方便,我就在桌面新建该文件夹了,起个名字叫STM32Project,以后我们的工程都存在这个文件夹下,这样比较方便管理;

接着打开Keil5软件,点击Project->New uVision Project
STM32单片机(二)STM32环境搭建

然后选择我们刚才新建的文件夹(桌面上的STM32Project),在里面再新建一个文件夹,用来存放本次的工程,如下图:

STM32单片机(二)STM32环境搭建

起个名字,就叫2-1 STM32工程模板,

STM32单片机(二)STM32环境搭建
然后点进去,接下来给工程文件起个名字,在这里我们可以起一个通用一点的名字,这个工程是干啥的我们可以在文件夹名称说明,文件夹的名称是方便改的,但是工程的名称以后不太方便改,所以我们就起个Project的名称,然后点击保存:

STM32单片机(二)STM32环境搭建

接下来选择器件型号,我们的芯片型号是STM32F103C8T6,所以这里选择STM32F103C8这个,

STM32单片机(二)STM32环境搭建
点击ok后,会弹出keil软件的一个新建工程小助手,这个小助手可以帮助我们快速新建工程,我们暂时不用这个小助手,可以直接把它叉掉:

STM32单片机(二)STM32环境搭建

接下来工程就已经建好了,但是这里的工程文件是空空如也,

STM32单片机(二)STM32环境搭建

2.2.2 添加启动文件

2.2.2.1 添加启动文件

现在这个工程还是不能直接用的,我们需要给他添加一个工程的必要文件,那我们打开我们的固件库文件夹,路径如下图:

STM32单片机(二)STM32环境搭建
打开Libraries->CMSIS->CM3->DeviceSupport->ST->STM32F10x->startup->arm

STM32单片机(二)STM32环境搭建
这些就是STM32的启动文件,STM32的程序就是从启动文件开始执行的;我们把这些文件复制下来,然后回到工程模板文件夹里,可以看到我们刚刚新建工程后自动生成的文件:

STM32单片机(二)STM32环境搭建

在这里新建一个文件夹Start用来存放启动文件,将刚刚复制的启动文件复制到Start文件夹里:

STM32单片机(二)STM32环境搭建

2.2.2.2 添加寄存器描述文件

然后将资料库里的以下三个文件也复制到Start里面:

STM32单片机(二)STM32环境搭建

其中stm32f10x.h是STM32的外设寄存器描述文件,作用类似于51单片机的头文件REGX52.H,是用来描述STM32有哪些寄存器和它对应的地址的;

下面的两个system文件是用来配置时钟的, STM32主频是72MHz,就是system文件里的函数配置的;

这三个文件也都复制到Start下面;

2.2.2.3 添加内核寄存器描述文件

STM32单片机(二)STM32环境搭建
打开以上路径,将两个core文件复制到Start文件夹下;

这两个cm3(Cortex-M3)文件就是内核的寄存器描述;当然他还带了一些内核的配置函数,所以多了个.c文件。

到此为止,我们工程的必要文件就复制完成了,最终Start文件夹下包含的所有文件如下所示:STM32单片机(二)STM32环境搭建

2.2.2.4 以上文件添加到工程

再回到keil软件,把我们刚刚复制的那些文件添加到工程里来,先选中Source Group 1,然后单击一下,把这个组改一下名字,也叫Start

STM32单片机(二)STM32环境搭建
然后右键,选择添加已经存在的文件夹到组里来

STM32单片机(二)STM32环境搭建
打开Start文件夹把下面这个文件过滤器选择All files,

STM32单片机(二)STM32环境搭建
然后将startup_stm32f10x_md.s、以及所有的.c.h文件都添加进来(至于为什么这么多启动文件单单只添加md.s,这个后面再讲),选好后,点击Add;然后Start文件夹里面的文件就添加好了,如下图所示:

STM32单片机(二)STM32环境搭建
这里的文件都是STM32里最基本的文件,是不需要我们修改的,我们添加进来即可。且我们可以看到这些文件图标上带了个小钥匙,表示他们是只读的文件;

STM32单片机(二)STM32环境搭建

2.2.2.5 在工程中添加头文件路径

最后我们还需要在工程选项里添加上这个文件夹的头文件路径,否则软件是找不到.h文件的;

STM32单片机(二)STM32环境搭建

点击魔术棒按钮,打开工程选项,在C/C++里,找到Include Paths栏,然后点击右边三个点的按钮,

STM32单片机(二)STM32环境搭建

在这里点新建路径,

STM32单片机(二)STM32环境搭建

然后再点三个点的路径,把Start的路径添加进来:

STM32单片机(二)STM32环境搭建
STM32单片机(二)STM32环境搭建

点击OK,这样就把这个文件夹的头文件路径添加进来了;

STM32单片机(二)STM32环境搭建

2.2.3 新工程测试

接下来我们新建一个main函数测试一下这个工程是否可行;

打开工程文件夹,新建一个User文件夹:

STM32单片机(二)STM32环境搭建

我们的main函数就放在这个文件夹里,然后再keil里,在Target 1这里点击右键,点击添加组:

STM32单片机(二)STM32环境搭建
STM32单片机(二)STM32环境搭建
然后将名字改为User:

STM32单片机(二)STM32环境搭建

然后再User上右键,点击添加新文件,

STM32单片机(二)STM32环境搭建
选择C文件,名字叫main:

STM32单片机(二)STM32环境搭建
下面的路径注意一下,要选择User文件夹,要不然默认是放在文件夹外面的:

STM32单片机(二)STM32环境搭建
然后点击Add,这样我们就有了main.c文件了:

STM32单片机(二)STM32环境搭建
在main.c里,我们先右键插入头文件,选择stm32f10x.h

STM32单片机(二)STM32环境搭建

然后写一个main函数,并写入测试代码,然后点击build:

STM32单片机(二)STM32环境搭建

可以看到结果为编译通过,0警告0错误,则证明工程建立成功了:

STM32单片机(二)STM32环境搭建

这里需要注意,文件的最后一行必须要空一行,否则会报警告。

这个工程目前还没有添加STM32的库函数,所以它还是一个基于寄存器开发的工程,如果你想用寄存器开发STM32,那工程建到这里就可以了。

2.2.4 配置寄存器实现点灯

下面演示一下通过配置寄存器来完成点灯操作,当然直接操作寄存器不是本节的重点,了解一下即可。

首先拿出STM32的最小系统板、STLINK和四根母对母的杜邦线, 按照插针边上的标识,把3.3V、SWDIO、SWCLK、GND对应连接好:

STM32单片机(二)STM32环境搭建
你的接口也有可能是以下这样:

SWCLK<---->SWCLK
SWDIO<---->SWO
GND<---->GND
3.3V<---->3.3V

连接好之后如下图所示:

STM32单片机(二)STM32环境搭建

然后把STLINK插在电脑上

STM32单片机(二)STM32环境搭建

插上电之后,板子上的电源灯应该会常亮,另一个谅解在PC13口上的灯默认应该是闪烁状态,这是芯片里的一个测试程序;

然后我们再在Keil里面配置一下调试器:点击魔术棒按钮->选择DEBUG->,这个调试器默认是ULINK,改成ST-Link Debugger

STM32单片机(二)STM32环境搭建
然后再点击上图3旁边的Settings按钮,在Flash Download里,把Reset and Run这一项勾上:

STM32单片机(二)STM32环境搭建
勾上这一项的目的是,我们下载程序后会立马复位并执行,这样方便一些;否则每次下载之后还要按一下板子上的复位按键才能执行程序;配置好之后点击确认即可。

然后将以下代码写进main.c里:

STM32单片机(二)STM32环境搭建
然后编译并下载,

STM32单片机(二)STM32环境搭建

现象是灯就会灭:

STM32单片机(二)STM32环境搭建

如果将代码改为以下:

STM32单片机(二)STM32环境搭建

灯就会被亮:
STM32单片机(二)STM32环境搭建

这就是通过寄存器控制LED灯,通过寄存器配置LED灯要一直查手册,来了解每一个寄存器的每一位是干啥的, 才能成功点亮。

2.2.5 使用库函数实现点灯

新建一个文件夹叫Library,用来存放库函数,

STM32单片机(二)STM32环境搭建
接着打开固件库的文件夹,打开Libraries->STM32标准外设驱动->src:如下图
STM32单片机(二)STM32环境搭建

这些就是库函数的源文件,这个misc.c是内核的库函数,其他的就是内核外的外设库函数了;这个misc就是混杂的意思;按ctrl+A全选,然后复制,在Library下粘贴,如下图所示:

STM32单片机(二)STM32环境搭建
然后再打开固件库的inc文件夹:

STM32单片机(二)STM32环境搭建
这些是库函数的头文件,继续全选并复制,同样在Library文件夹下粘贴:

STM32单片机(二)STM32环境搭建
然后回到Keil软件,同样在Target1处右键,添加组,

STM32单片机(二)STM32环境搭建
改个名字叫Library:

STM32单片机(二)STM32环境搭建

再右键,添加已经存在的文件,打开Library,ctrl+A,Add:
STM32单片机(二)STM32环境搭建

STM32单片机(二)STM32环境搭建
这样就把所有的库函数文件都添加进来了;但是对于这个库函数来说,现在还不能直接使用,需要再添加一个文件:打开固件库的文件夹(路径为固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template),找到如下三个文件:

STM32单片机(二)STM32环境搭建
其中stm32f10x_conf.h是用来配置库函数头文件的包含关系的,另外这里面还有个用来参数检查的函数定义,这是所有库函数都需要的;两个it结尾的文件是用来存放中断函数的;

把这三个文件复制下来,粘贴进工程的User目录下:

STM32单片机(二)STM32环境搭建
接着回到Keil软件, 在User组里,把刚发财那三个文件添加进来:
STM32单片机(二)STM32环境搭建
STM32单片机(二)STM32环境搭建

因为在头文件中定义了如下代码:

STM32单片机(二)STM32环境搭建
所以我们需要对USE_STDPERIPH_DRIVER宏进行定义,才能包含到stm32f10x_conf.h头文件:

添加该宏的步骤如下:

STM32单片机(二)STM32环境搭建
这样我们基于库函数的工程就建好了;我们可以看一下,这个Library里面的库函数也都带了钥匙,说明只读;

STM32单片机(二)STM32环境搭建
此时编译一下,结果如下:

STM32单片机(二)STM32环境搭建
0错误0警告,所以我们的工程建立是成功的。

然后我们用库函数实现点灯的操作,代码如下:

#include "stm32f10x.h"                  // Device header

int main(void)
{
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
	GPIO_InitTypeDef GPIO_InitStructure;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOC, &GPIO_InitStructure);
//	GPIO_SetBits(GPIOC, GPIO_Pin_13);
	GPIO_ResetBits(GPIOC, GPIO_Pin_13);
	while (1)
	{
		
	}
}

代码解释:

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);表示配置GPIOC的外设时钟;

GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);

先定义一个GPIO_InitTypeDef 结构体,然后对其进行赋值,最后调用GPIO_Init函数,来配置GPIO模式;

最后设置端口的高低电平来进行点灯:
GPIP_SetBIts这个函数可以把指定端口设置为高电平,GPIO_SetBits(GPIOC, GPIO_Pin_13)代码的意思是将PC13号口设置为高电平;

GPIO_ResetBits这个函数可以将指定端口设置为低电平,GPIO_ResetBits(GPIOC, GPIO_Pin_13);代码的意思是将PC13号口设置为低电平;

以上代码的现象(注释掉了PC13号口的低电平,使用的是低电平),所以灯会亮:

STM32单片机(二)STM32环境搭建

2.2.6 补充:库函数中的启动文件选择

在第2.2.2.4 节中,添加启动文件时,我们选择了md.s结尾的启动文件,
STM32单片机(二)STM32环境搭建

为什么选择这个而不选择添加其他的呢?

先看一下下面的表:

STM32单片机(二)STM32环境搭建
我们使用的STM32F103系列C8T6,其Flash大小是64K,按照表中的对应关系,需要选择MD的启动文件。

2.2.7 总结:新建工程的步骤

STM32单片机(二)STM32环境搭建
工程架构:

STM32单片机(二)STM32环境搭建文章来源地址https://www.toymoban.com/news/detail-498251.html

到了这里,关于STM32单片机(二)STM32环境搭建的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • HT32合泰单片机开发环境搭建和配置教程

    HT32合泰(Holtek)单片机开发环境搭建安装教程 最近在准备合泰杯的比赛,在看合泰官方的PPT和数据手册学习,顺便做个合泰单片机的开发环境搭建教程。 合泰杯比赛发放的开发板是ESK32-30501,用的单片机是HT32F52352。 合泰杯官网地址:https://url.zeruns.tech/S7xu8 合泰官方HT32F52352授课

    2024年02月02日
    浏览(40)
  • 一、灵动mm32单片机_开发环境的搭建(Keil)

    略。 (1)这里以MM32F0130单片机为例。 (2)进入灵动微电子官网。上海灵动微电子股份有限公司 (3)点击“支持”→“KEILPacl”。 (3)点击下载Pack包。 (4)下载后,解压下载的压缩包,找到对应的Pack包,双击安装即可。 (1)点击“支持”→“评估开发板”。 (2)选择对应的开发板。 (3)点

    2024年02月08日
    浏览(50)
  • 毕业设计 STM32单片机的智能家居环境监测控制系统

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月10日
    浏览(86)
  • 基于STM32单片机的智能家居环境监测与控制系统设计

    基于STM32单片机的智能家居环境监测与控制系统设计 摘要 :随着物联网技术的不断发展,智能家居环境监测与控制系统的应用越来越广泛。本文设计了一种基于STM32单片机的智能家居环境监测与控制系统,该系统能够实时监测环境中的温湿度和天然气浓度,并将数据显示在

    2024年04月25日
    浏览(53)
  • 单片机毕业设计 STM32智能空气质量检测仪 - 环境检测盒子 嵌入式 物联网

    Hi,大家好,学长今天向大家介绍一个 单片机项目 基于STM32的空气质量检测仪 大家可用于 课程设计 或 毕业设计 如今人们大约 80%的时间是在室内度过的, 室内空气质量与我们每个人的工作和生活都息息相关, 因此对生活环境的空气质量提出了更高的要求。 针对雾霾、 室内

    2024年02月10日
    浏览(45)
  • 单片机设计_室内环境智能监测系统(STM32 OLED ESP8266 DHT11 MQ-2 加湿器)

    想要更多项目私wo!!! 室内环境智能监测系统 主要功能:         1.检测空气温湿度         2.检测光照强度         3.检测烟雾浓度         4.数据显示在手机端和设备OLED屏幕上         5.当空气温度高于设定的阈值时,风扇开启         6.当空气湿度低于

    2024年02月09日
    浏览(68)
  • GD32单片机和STM32单片机的对比分析

    GD32单片机和STM32单片机都是基于Arm Cortex-M3/M4内核的32位通用微控制器,广泛应用于各种嵌入式系统和物联网领域。两者之间有很多相似之处,但也有一些不同之处,本文将从以下几个方面对比分析两者的特点、优势和开发成本。 GD32单片机采用的是二代的M3/M4内核,而STM32单片

    2024年02月16日
    浏览(62)
  • STM32单片机(一)STM32简介

    ❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其是STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 :适用于想要从零基础开始学习入门单片机,且有一定C语言基础的的童鞋

    2024年02月10日
    浏览(60)
  • STM32单片机开发-01 STM32介绍

    通过野火开发板学习单片机 从内核上分有Cortex-M0、M3、M4 和M7 F1 代表了基础型,基于Cortex-M3 内核,主频为72MHZ F4 代表了高性能,基于Cortex-M4 内核,主频180M。 数据手册:用于芯片选型和设计原理图 参考手册:用于编程时查阅 Icode总线 – 该总线讲M3内核的指令总线与闪存指令

    2024年01月21日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包