15

【STM32项目笔记】STM32CubeMX+Keil+Proteus联合实现LED闪烁

 4 years ago
source link: http://www.cnblogs.com/Mr-Wangblogs/p/12683685.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

摘要

利用 STM32C ubeMx配置STM32芯片的功能,然后将配置后的内容生成代码,并导出成可以使用Keil打开编辑的文件,在Keil中添加控制代码后,下载到Proteus仿真中,使用仿真观察代码执行结果。

所需软件

1) STM32C ubeMx

下载地址: https://www.st.com/en/development-tools/stm32cubemx.html

2) Keil

软件版本:uVision V5.14.2

3) Proteus

软件版本:8.9 ps2

实现的功能

PA1LED ,实现 LED 闪烁

1 STM32CubeMx创建STM32工程文件

STM32C ubeMX打开界面如图1-1所示。

I3YRbeM.png!web

1-1 STM32C ubeMX初始界面

1.1 创建工程

使用 F ile->New Project创建STM32配置工程。如图1-2所示,然后弹出如图1-3所示的MCU型号选择窗口。

rIvYvaV.png!web

1-2 创建工程

viIrmqB.png!web

1-3 选择 MCU 型号

在图 1-3P art Number Search窗口输入预选择的型号,本次选择STM32F103R6(Proteus中包含该IC)。输入STM32F103R6后弹出如图1-4所示界面。

BnEzUra.png!web

1-4 检索出两款 STM32IC

根据封装不同,检索出两种类型 STM32F103R6 处理器,选择 LQFP64 封装的在 2 所示位置双击 , 弹出如图 1-5 所示界面。

vERVzyY.png!web

1-5 创建完成的 STM32F103C ubeMx 工程

1.2 配置芯片参数

需要配置的参数如下:

系统时钟,下载方式(可选,本次为仿真,可以不使用 D ebug方式)以及引脚功能。

1.2.1 配置系统下载方式

选择 C ategories下的SYS弹出右图所示的SYS Mode and Configuration界面,在如图2所示的地方选择下载Debug方式,本次使用仿真的方式,所以Debug方式可以选择No Debug。

QvuqYzq.png!web

1-6 配置系统下载方式

1.2.2 配置系统时钟

选择 C ategories下的RCC选择时钟源,如图1-7所示,可选择的时钟包括HSE和LSE,由于本次仿真中仅使用HSE时钟,所以仅对HSE时钟进行选择,选择Crystal/Ceramic Resonator外部时钟。如图1-7所示。

Uby2q2v.png!web

1-7 系统时钟选择

选完时钟后,进入 C lock Configuration界面进行时钟配置,首先设置外部时钟源输入频率Input Frequency,然后选择PLL Source Mux的通道,最后双击HCLK频率,然后系统会自动配置成用于期望的时钟。配置前的时钟图如图1-8所示,配置完成的时钟图如图1-9所示。

3aEFJf6.png!web

1-8 系统时钟配置

EVrMzuA.png!web

1-9 配置后系统时钟结构

1.2.3 配置GPIO口功能

打开如图 1-10 所示的界面,开始配置 GPIO 口功能,本例程目标是实现 LED (连接至 PA1 )闪烁,所以需要配置 PA1 为输出功能。

fUvyi2f.png!web

1-10 GPIO 功能配置界面

单击对应的引脚 PA1, 然后选择 GPIO 模式为 GPIO_O utput。如图1-11所示。

2y2mque.png!web

1-11 GPIO 功能配置

右击 PA1 引脚,选择 E nter User Label,为GPIO分配标识,本次设置为LED01。如图1-12所示。

IvAfuqy.png!web

1-12 GPIO 标识分配

接下来进入如图 1-13 所示的界面配置 GPIO 引脚详细参数。单击黄色箭头所指 PA1 ,弹出如图 1-14 所示界面,进行 GPIO 详细参数配置。

z2AVveI.png!web

1-13 GPIO 配置界面

如图 1-14 ,将 PA1 配置为默认输出高电平,推挽输出模式,上拉,高速输出模式,引脚标识为 LED01

u6JJzuu.png!web

1-14 GPIO 详细配置界面

至此, STM32 芯片的基本参数已经配置完成了。

1.3 输出配置好的工程

进入如图 1-15 所示的 P roject Manager界面进行输出配置,如图1-15所示。

Project Name输入工程文件名;本次定义为Prj_STM32F103_LED

Project Location输入工程放置路径;

Toolchain/IDE选择预输出的IDE类型;本次选择MDK-ARM

M in Verison选择软件版本号;V5

mYBz2qU.png!web

1-15 工程输出配置界面

配置完成的界面如图 1-16 所示。

7vIFFbB.png!web

1-16 配置好的输出配置

C ode Generator中选中箭头所示位置。这样输出文件将包括.c和.h文件。

j2uIfyB.png!web

1-17 配置 C ode Generator

1.4 生成代码

选择如图 1-18 箭头所指的 GENERATE CODE 生成 K eil代码。

7bIbym7.png!web

1-18 生成代码

mIrqqmB.png!web

1-19 生成的 K eil源代码

2 Proteus 搭建基于STM32 LED控制电路图

2.1 创建Proteus工程

打开软件,然后选择 F ile->New Project打开如图2-1所示界面。

yA7vY36.png!web

图2-1 新建工程界面

bym6JnA.png!web

图2-2 填写工程名字和路径

填写完毕后,点击 N ext,进入如图2-3所示界面,根据设计需要选择图纸大小。

JJJVjqe.png!web

2-3

选择完毕后点击 N ext进入如图2-4所示界面。

eyI3y2z.png!web

2-4

默认,无需设计PCB,所以选择Next即可,进入如图2-5所示界面。

YN7F32U.png!web

2-5

由于使用 C ubeMX 和Keil联合对STM32进行仿真,所以无需用Proteus进行开发,故直接点击Next进入2-6所示界面。

Yv2Azeq.png!web

2-6

点击Finish完成工程创建。

2.2 检索器件

按照如图 2-7 所示的方式添加元器件,首先选择器件标记,然后单击 P 进入 P ick Devices界面,然后在Keywords界面输入要检索的器件,然后进行选择。

JZZRBfn.png!web

2-7

2.3 放置器件

iUNRreb.png!web

图2-8

按照如图2-8的方式进行器件的放置操作,在2的位置选中器件,然后在3所示的图纸窗口单击即可。

2.4 放置电源

Afaaiyz.png!web

2-9

Zf2mIzq.png!web

2-10

2.5 配置STM32F103R6参数

双击图 2-10 界面所示的 STM32F103R6 器件,弹出如图 2-11 所示界面,在该界面设置相应的参数,其中在 P rogram File添加程序生成的HEX文件,Crystal Frequency设置系统频率,这里设置为72MHz。

FbmAFbF.png!web

3 利用Keil添加控制代码

在Keil中添加代码需要注意,用户需要将代码添加到私有代码中如图所示。添加到其他地方,会发生生使用CubeMX更新后,代码被清除问题。

r2iuyur.png!web

图3-1

在如图3-2所示的位置,添加如图3-2所示的LED电平翻转代码。

rMbeIj7.png!web

图3-2

4 仿真结果

<<Pro_STM32F103_LED - Proteus 8 Professional - Schematic Capture 2020-04-12 08-54-18.mp4>>


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK