STM32CubeMX的使用
1、STM32CubeMX简介
STM32CubeMx软件是ST公司为STM32系列单片机快速建立工程,并快速初始化使用到的外设、GPIO等,大大缩短了我们的开发时间。同时,软件不仅能配置STM32外设,还能进行第三方软件系统的配置,例如FreeRtos、FAT32、LWIP等等,而且还有一个功能,就是可以用它进行功耗预估,还有,这款软件可以输出PDF、TXT文档,显示你工程里面的GPIO等外设的配置信息,供你进行原理图设计等。
STM32CubeMX几乎覆盖了STM32L475xx全系列芯片。具有如下特性:
1、 只管的选择MCU型号,可指定系列、封装、外设数量等条件。
2、 微控制器图形化配置。
3、 自动处理引脚冲突。
4、 动态设置时钟树,生成系统时钟配置代码。
5、可以动态设置外围和中间件模式和初始化。
6、功耗预测。
7、C代码工程生成器乳钙了STM32微控制器初始化编译软件,如IAR,KEIL,GCC。 8、可以独立使用或者作为Eclipse插件使用。
STM32CubeMX和STM32Cube的关系,STM32Cube包含STM32CubeMX图形工具和STM32Cube库两个部分,使用STM32CubeMX配置生成的代码,是基于STM32Cube库的。也就是说,我们使用STM32CubeMX配置出来的初始化代码和STM32Cube库兼容,例如硬件抽象层代码就是使用STM32的HAL。不同的STM32系列芯片,会有不同的STM32Cube库支持,而STM32CubeMX图形工具只有一种。所以我们配置不同的STM32系列芯片,选择不同的STM32Cube库即可。
2、打开STM32CubeMX软件
图片中的序号1和3是新建工程的快捷按钮,序号2和4是快速打开工程快捷按钮。
图片中的5是检测更新,用于检查STM32的官方固件库是否有更新,6是管理自己所下载的固件库,7升级的一些设置选项(包含固件包存储位置等)。打开7可以选择固件库的安装以及解压的位置(最好不要包含中文路径)。
我们将自己下载的HAL库文件解压放到一个目录中,然后通过Repository Folder指定该固件库的路径。
点击OK后,再打开“Manage embedded software packages”管理固件库,可以看到如下图所以,方框呈绿色,证明固件库已存在。
主菜单Project选项,有生成代码、生成工程报告以及设置选项,这些选项需要建立一个实际的工程以后才能使用。
3、创建和保存工程
打开STM32CubeMX软件后,点击“New Project”创建新工程。之后会弹出MCU选择窗口,如下图:
依次在选项卡Series,Lines和Package之下选择对应的参数,然后选择对应的芯片型号。如下图:
最后双击选择具体的芯片型号,如图中选中的芯片。
最后选则File->Save Project保存工程到文件夹下。工程的名字以.ioc为后缀。
4、工程配置
工程新建好之后会直接进入Pinout选项卡,这个时候界面会展示芯片完整的引脚图。在引脚图中,我们可以对引脚功能进行配置。黄色的引脚主要是一些电源和GND引脚,如果某个引脚已经被配置过,那么会显示为绿色,提示已经使用。
RCC配置
对STM32芯片而言,RCC配置的重要性不言而喻。在STM32CubeMX中,RCC的相关设置却非常简单,因为STM32CubeMX把时钟系统独立出来单独配置。在操作界面,依次点击Pinout->Peripherals->RCC选项卡便可进入RCC配置栏。如下图:
从上图可以看出,RCC配置栏实际上只有6个配置项。选项High Speed Clock(HSE)用来配置HSE,第二个选项Low Speed Clock(LSE)用来配置LSE,选项Master Clock Output 用来选择是否使能MCO引脚时钟输出,选项LSCO Clock Output用来选择是否使能将低速时钟输出到外部LSCO,选项SAI1 Extern Clock用来配置是否使能外部SAI1时钟,最后一个选项SAI2 Extern Clock用来配置是否使能外部SAI2时钟。
在这里选择使用HSE,所以我们设置选项High Speed Clock(HSE的值为Crystal/Ceramic Resonator(使用晶振/陶瓷振荡器)即可。这里还需要说明一下,值 Bypass ClockSource的意思是旁路时钟源,也就是不使用使用晶振/陶瓷振荡器,直接通过外部提供一个可靠的4-26MHz时钟作为HSE。配置好的RCC配置选项如下图所示,而且从图中可以看出在打开了HSE后,右边的引脚图中,相应的引脚会由灰色变为绿色,表示该引脚已经被使用。
STM32CubeMX的使用的更多相关文章
- STM32CubeMX安装指南
1.STM32CubeMX软件下载 地址:http://pan.baidu.com/s/1bn8sXOV 密码:6u3p 2.安装 1)安装Java SDK 2)安装SetupSTM3 ...
- STM32F429i-DISCO FreeRTOS keil STM32CubeMX
目标: 在STM32F429 Disco开发板上用FreeRTOS双线程点亮双闪led. 准备: 0. STM32F429i-DISCO 1. keil ARMMDK 5.13 2. STM32Cub ...
- 使用STM32CubeMX来创建属于自己的工程
使用STM32CubeMX的好处就是GPIO口可以使用图形化的方式进行配置,配置完成之后可以立即生成支持多种编译器的工程文件,之后打开即可编译通过了,非常方便. 操作很简单,如下所述: 1 从ST的官 ...
- STM32CubeMX GPIO的使用
一.GPIO口配置1.GPIO的主要配置有输入和输出① 作为普通GPIO输入:根据需要配置该引脚为浮空输入.带弱上拉输入或带弱下拉输入,同时不要使能该引脚对应的所有复用功能模块.② 作为普通GPIO输 ...
- 关于STM32CubeMX使用LL库设置PWM输出
HAL和LL库 HAL是ST为了实现代码在ST家族的MCU上的移植性,推出的一个库,称为硬件抽象层,很明显,这样做将会牺牲存储资源,所以项目最后的代码比较冗余,且运行效率大大降低,运行速度受制于fla ...
- STM32CubeMX HAL库串口+DMA数据发送不定长度数据接收
参考资料:1.ST HAL库官网资料 2.https://blog.csdn.net/u014470361/article/details/79206352#comments 一.STM32CubeM ...
- STM32CubeMX的串口配置,以及驱动代码
1.STM32CubeMX的配置没啥子好说的,使能然后改一下波特率和字长,然后在将中断勾选,把中断等级调到1(一定要比systick的优先级垃圾!!!) 2.驱动代码 在生成的it.c文件中,例如用的 ...
- STM32CubeMX+Keil裸机代码风格(2)
10.找到STM32cubeMx所建的工程目录,在工程目录的同级目录下新建一个文件夹用来存放自己写的代码 11.用notepad++打开keil的工程文件,在这里的<Group>前面加上 ...
- STM32CubeMX+Keil裸机代码风格(1)
1.打开STM32CubeMX,New project 选好自己要用的芯片 2.选上左侧SYS中的debug Serial Wire(定义烧程序的端口) . 3,选上左侧TIM6,使TIM6可用(TI ...
- 利用STM32CubeMX之SPI
现在我们继续使用STM32CubeMX来生成SPI工程.我们的硬件平台还是我们熟悉的STM32F103C8开发板. 设置时钟树中的配置 现在打开SPI的设置 如果想修改管脚的名字可以红色框中进行修改, ...
随机推荐
- call 和 apply 和 bind的区别
有些东西说忘就往,每天记录自己忘记的东西重新学习一遍,挺好 作用:call()和apply()用法都是一样的,改变this的指向问题 区别:接收参数的方式不同, (bind 方法是附加在函数调用后面使 ...
- 助力SpringBoot自动配置的条件注解ConditionalOnXXX分析--SpringBoot源码(三)
注:该源码分析对应SpringBoot版本为2.1.0.RELEASE 1 前言 本篇接 如何分析SpringBoot源码模块及结构?--SpringBoot源码(二) 上一篇分析了SpringBoo ...
- vue中数据请求的三种方法
注意请求可能存在跨域问题,需要去配置好 这三种建议使用axios 1.resource Vue 要实现异步加载需要使用到 vue-resource 库. Vue.js 2.0 版本推荐使用 axios ...
- 安装ArchLinux时遇到的部分问题
目录 一.网络问题 1.安装刚开始时连接wifi 2.安装完桌面后 二.卸载gnome桌面 三.启动桌面(以kde桌面为例) 1.立即启动桌面(start , stop) 2.设置开启自启动 (ena ...
- HTML5&CCS3(2) 处理网页文件
2.1 规划网站 为什么要创建这个站点,需要展示的内容是什么? 应该如何调整内容使之吸引期望的访问者? 需要多少个页面?网站的结构是怎样? 为页面.图像和其他外部文件设计一个简单且一致的命名规则. 2 ...
- 网络安全从入门到精通 (第二章-1) Web安全前端基础
本文内容: 前端是什么? 前端代码 HTML CSS JS !!!醋成酒的小墨,促成就的小墨,小墨促成就,!!! 1,前端是什么? 网站一般用两部分组成,前端负责展示,后端负责处理请求. 2,前端代码 ...
- python员工管理系统(基础版)
各位小伙伴们大家好,最近自学python已经差不多把基础学完了,现在运用这些基础知识写了一个简单版本的员工管理系统 因为在大学里我是学过java的,所以,当有了一定的基础和熏陶外,真心觉得python ...
- linux入门系列18--Web服务之Apache服务2
接上一篇文章,在了解Apache基本配置以及SELinux相关知识后,继续演示Apache提供的虚拟主机功能以及访问控制方式. 如果还没看上一篇的建议先查看后再来,上篇文章"linux入门系 ...
- Flutter 实现不同样式(有样式) 的TextField (可自定义),类似微博#话题#、@用户,(给TextField加TextSpan)
描述 先上效果图 在项目中,有 @ 和 话题功能,需要在编辑时即可回显,但是官方原生的TextField不支持对部分文字定义不同的样式,所以封装了一个. 注意:这不是富文本插件,不支持在输入框中显示图 ...
- JavaScript----简介及基础语法
##JavaScript *概念:一门客户端脚本语言 *运行在客户端浏览器中的.每一个浏览器都有JavaScript的解析引擎. *脚本语言:不需要编译,直接就可以被浏览器解析执行. *功能: *可以 ...