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

栏目: IT技术 · 发布时间: 4年前

摘要

利用 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所示。

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

1-1 STM32C ubeMX初始界面

1.1 创建工程

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

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

1-2 创建工程

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

1-3 选择 MCU 型号

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

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

1-4 检索出两款 STM32IC

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

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

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

1.2 配置芯片参数

需要配置的参数如下:

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

1.2.1 配置系统下载方式

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

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

1-6 配置系统下载方式

1.2.2 配置系统时钟

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

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

1-7 系统时钟选择

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

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

1-8 系统时钟配置

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

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

1.2.3 配置GPIO口功能

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

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

1-10 GPIO 功能配置界面

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

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

1-11 GPIO 功能配置

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

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

1-12 GPIO 标识分配

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

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

1-13 GPIO 配置界面

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

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

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

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

1-15 工程输出配置界面

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

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

1-16 配置好的输出配置

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

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

1-17 配置 C ode Generator

1.4 生成代码

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

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

1-18 生成代码

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

1-19 生成的 K eil源代码

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

2.1 创建Proteus工程

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

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

图2-1 新建工程界面

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

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

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

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

2-3

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

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

2-4

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

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

2-5

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

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

2-6

点击Finish完成工程创建。

2.2 检索器件

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

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

2-7

2.3 放置器件

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

图2-8

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

2.4 放置电源

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

2-9

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

2-10

2.5 配置STM32F103R6参数

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

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

3 利用Keil添加控制代码

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

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

图3-1

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

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

图3-2

4 仿真结果

<>


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

构建高性能Web站点

构建高性能Web站点

郭欣 / 电子工业出版社 / 2009-8 / 59.00元

本书围绕如何构建高性能Web站点,从多个方面、多个角度进行了全面的阐述,涵盖了Web站点性能优化的几乎所有内容,包括数据的网络传输、服务器并发处理能力、动态网页缓存、动态网页静态化、应用层数据缓存、分布式缓存、Web服务器缓存、反向代理缓存、脚本解释速度、页面组件分离、浏览器本地缓存、浏览器并发请求、文件的分发、数据库I/O优化、数据库访问、数据库分布式设计、负载均衡、分布式文件系统、性能监控等。......一起来看看 《构建高性能Web站点》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换