摘要
利用 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
实现的功能
PA1 接 LED ,实现 LED 闪烁
1 STM32CubeMx创建STM32工程文件
STM32C ubeMX打开界面如图1-1所示。
图 1-1 STM32C ubeMX初始界面
1.1 创建工程
使用 F ile->New Project创建STM32配置工程。如图1-2所示,然后弹出如图1-3所示的MCU型号选择窗口。
图 1-2 创建工程
图 1-3 选择 MCU 型号
在图 1-3 的 P art Number Search窗口输入预选择的型号,本次选择STM32F103R6(Proteus中包含该IC)。输入STM32F103R6后弹出如图1-4所示界面。
图 1-4 检索出两款 STM32IC
根据封装不同,检索出两种类型 STM32F103R6 处理器,选择 LQFP64 封装的在 2 所示位置双击 , 弹出如图 1-5 所示界面。
图 1-5 创建完成的 STM32F103C ubeMx 工程
1.2 配置芯片参数
需要配置的参数如下:
系统时钟,下载方式(可选,本次为仿真,可以不使用 D ebug方式)以及引脚功能。
1.2.1 配置系统下载方式
选择 C ategories下的SYS弹出右图所示的SYS Mode and Configuration界面,在如图2所示的地方选择下载Debug方式,本次使用仿真的方式,所以Debug方式可以选择No Debug。
图 1-6 配置系统下载方式
1.2.2 配置系统时钟
选择 C ategories下的RCC选择时钟源,如图1-7所示,可选择的时钟包括HSE和LSE,由于本次仿真中仅使用HSE时钟,所以仅对HSE时钟进行选择,选择Crystal/Ceramic Resonator外部时钟。如图1-7所示。
图 1-7 系统时钟选择
选完时钟后,进入 C lock Configuration界面进行时钟配置,首先设置外部时钟源输入频率Input Frequency,然后选择PLL Source Mux的通道,最后双击HCLK频率,然后系统会自动配置成用于期望的时钟。配置前的时钟图如图1-8所示,配置完成的时钟图如图1-9所示。
图 1-8 系统时钟配置
图 1-9 配置后系统时钟结构
1.2.3 配置GPIO口功能
打开如图 1-10 所示的界面,开始配置 GPIO 口功能,本例程目标是实现 LED (连接至 PA1 )闪烁,所以需要配置 PA1 为输出功能。
图 1-10 GPIO 功能配置界面
单击对应的引脚 PA1, 然后选择 GPIO 模式为 GPIO_O utput。如图1-11所示。
图 1-11 GPIO 功能配置
右击 PA1 引脚,选择 E nter User Label,为GPIO分配标识,本次设置为LED01。如图1-12所示。
图 1-12 GPIO 标识分配
接下来进入如图 1-13 所示的界面配置 GPIO 引脚详细参数。单击黄色箭头所指 PA1 ,弹出如图 1-14 所示界面,进行 GPIO 详细参数配置。
图 1-13 GPIO 配置界面
如图 1-14 ,将 PA1 配置为默认输出高电平,推挽输出模式,上拉,高速输出模式,引脚标识为 LED01 。
图 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
图 1-15 工程输出配置界面
配置完成的界面如图 1-16 所示。
图 1-16 配置好的输出配置
C ode Generator中选中箭头所示位置。这样输出文件将包括.c和.h文件。
图 1-17 配置 C ode Generator
1.4 生成代码
选择如图 1-18 箭头所指的 GENERATE CODE 生成 K eil代码。
图 1-18 生成代码
图 1-19 生成的 K eil源代码
2 Proteus 搭建基于STM32 LED控制电路图
2.1 创建Proteus工程
打开软件,然后选择 F ile->New Project打开如图2-1所示界面。
图2-1 新建工程界面
图2-2 填写工程名字和路径
填写完毕后,点击 N ext,进入如图2-3所示界面,根据设计需要选择图纸大小。
图 2-3
选择完毕后点击 N ext进入如图2-4所示界面。
2-4
默认,无需设计PCB,所以选择Next即可,进入如图2-5所示界面。
2-5
由于使用 C ubeMX 和Keil联合对STM32进行仿真,所以无需用Proteus进行开发,故直接点击Next进入2-6所示界面。
2-6
点击Finish完成工程创建。
2.2 检索器件
按照如图 2-7 所示的方式添加元器件,首先选择器件标记,然后单击 P 进入 P ick Devices界面,然后在Keywords界面输入要检索的器件,然后进行选择。
2-7
2.3 放置器件
图2-8
按照如图2-8的方式进行器件的放置操作,在2的位置选中器件,然后在3所示的图纸窗口单击即可。
2.4 放置电源
2-9
2-10
2.5 配置STM32F103R6参数
双击图 2-10 界面所示的 STM32F103R6 器件,弹出如图 2-11 所示界面,在该界面设置相应的参数,其中在 P rogram File添加程序生成的HEX文件,Crystal Frequency设置系统频率,这里设置为72MHz。
3 利用Keil添加控制代码
在Keil中添加代码需要注意,用户需要将代码添加到私有代码中如图所示。添加到其他地方,会发生生使用CubeMX更新后,代码被清除问题。
图3-1
在如图3-2所示的位置,添加如图3-2所示的LED电平翻转代码。
图3-2
4 仿真结果
<
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- php如何实现session,自己实现session,laravel如何实现session
- AOP如何实现及实现原理
- webpack 实现 HMR 及其实现原理
- Docker实现原理之 - OverlayFS实现原理
- 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性?
- 自己实现集合框架(十):顺序栈的实现
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Alone Together
Sherry Turkle / Basic Books / 2011-1-11 / USD 28.95
Consider Facebookit’s human contact, only easier to engage with and easier to avoid. Developing technology promises closeness. Sometimes it delivers, but much of our modern life leaves us less connect......一起来看看 《Alone Together》 这本书的介绍吧!
JS 压缩/解压工具
在线压缩/解压 JS 代码
SHA 加密
SHA 加密工具