第10章 使用STM32CubeMX新建工程
STM32Cube是一项意法半导体的原创活动, 通过减少开发工作、时间和成本, 使开发者的开发工作更轻松。STM32Cube 是一个全面的软件平台,包括了ST产品的每个系列。(如,STM32CubeF7是针对STM32F7系列)。平台包括了STM32Cube 硬件抽象层和一套的中间件组件(RTOS,USB,FS,TCP/IP,Graphics,等等)。
10.1 软件安装
必备软件:Java(V1.7及以上版本)和STM32CubeMX(版本4.22.1)
Java下载地址:www.java.com/zh_CN/
10.1.1 安装Java软件
双击安装包“JavaSetup8u151.exe”,具体操作步骤如下:
图 10-1 Java安装步骤1
图 10-2 Java安装步骤2
图 10-3 Java验证成功
在本地新建好文件夹后,把准备好的库文件添加到相应的文件夹下:
10.1.2 安装STM32CubeMX软件
双击安装包“SetupSTM32CubeMX-4.22.1.exe”,具体操作步骤如下:
图 10-4 STM32CubeMX启动安装
图 10-5 STM32CubeMX接受本许可协议的条款
图 10-6 STM32CubeMX指定安装路径
图 10-7 STM32CubeMX创建快捷方式
图 10-8 STM32CubeMX完成安装
10.2 新建工程
10.2.1 新建工程
打开STM32CubeMX,软件会更新一些组件,等待安装完成即可。
图 10-9 CubeMX安装组件
1. 选择CPU型号
这个根据你开发板使用的CPU具体的型号来选择, M7挑战者选STM32F767IGT型号。我们直接在搜索框输入型号STM32F767IG得到两个结果,最终确认STM32F767IGTx为我们实际使用型号。
图 10-10 选择具体的CPU型号
2. 确认时钟源
进入工程后打开RCC选项,选择Crystal/Ceramic Resonator,即使用外部晶振作为HSE的时钟源。
图 10-11 选择时钟源
3. 配置IO口
这个工程简单控制一个LED周期闪烁,我们只需要配置一个IO即可,这里选定控制红色LED的引脚PH10,通过搜索框搜索可以定位IO口的引脚位置,图中会闪烁显示,配置PH10的属性为GPIO_Output。
图 10-12 查找IO口
图 10-13 配置IO口属性
4. 配置系统时钟
开发板的外部晶振为25MHz,我们填入25;通道选择LSE;PLLM选择为/25;倍频系数N选择为x432;系统时钟选择PLLCLK;系统时钟设定为216Mz;APB1分频系数选择为/4即PCLK1位54MHz;APB2分频系数选择为/2即PCLK2位108MHz。
图 10-14 如何在工程中添加文件
5. 进一步配置IO的具体属性
点击Configuration,进入系统详细配置,选着GPIO,配置PH10的默认电平,开漏输出,无上下拉,低速模式。引脚标签为LED_R。
图 10-15 设置文件是否加入编译
6. 配置工程属性
配置工程的名称,路径,使用的IDE工具,堆栈大小。
图 10-16 配置工程属性
7. 生成代码
在设定的路径成功生成代码,选着打开工程。
图 10-17成功生成代码
8. 添加用户测试代码
打开工程后在main函数中的主循环插入用户代码,目的是让红色LED周期闪烁。
图 10-18添加用户测试代码
9. 配置下载调试工具
配置下载工具为CMSIS-DAP,程序下载完后复位并运行。
图 10-19配置下载调试工具
10.3 下载验证
把编译好的程序下载到开发板并复位,可看到板子上的红色灯会周期闪烁。
第10章 使用STM32CubeMX新建工程的更多相关文章
- 第10章 新建工程-库函数版—零死角玩转STM32-F429系列
第10章 新建工程—库函数版 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fire ...
- STM32CubeMX新建工程+基本IO配置过程
Ⅰ.写在前面 学习本文之前可以查看我前面的文章: STM32CubeMX介绍.下载与安装 STM32CubeMX使用方法及功能介绍 本文接着上一篇文章结合基本IO配置实例,讲述关于STM32CubeM ...
- 《构建之法》之第8、9、10章读后感 ,以及sprint总结
第8章: 主要介绍了软件需求的类型.利益相关者,获取用户需求分析的常用方法与步骤.竞争性需求分析的框架NABCD,四象限方法以及项目计划和估计的技术. 1.软件需求:人们为了解决现实社会和生活中的各种 ...
- 敏捷软件开发:原则、模式与实践——第10章 LSP:Liskov替换原则
第10章 LSP:Liskov替换原则 Liskov替换原则:子类型(subtype)必须能够替换掉它们的基类型(base type). 10.1 违反LSP的情形 10.1.1 简单例子 对L ...
- 孙鑫视频学习:对第10章设置线宽时为什么不调用UpDateData(TRUE)的理解
在第10章10.2.1小节中,首先分别对视图类和对话框类添加了一个名为m_nLineWidth的int型变量,再将用户在CSetting dlg对话框的edit控件中输入的线宽值记录在dlg.m_nL ...
- 第10章 系统级I/O
第10章 系统级I/O 10.1 Unix I/O 一个Unix文件就是一个m个字节的序列:B0,B1,…,BK,…,Bm-1 Unix I/O:一种将设备优雅地映射为文件的方式,允许Unix内核引出 ...
- 高性能Linux服务器 第10章 基于Linux服务器的性能分析与优化
高性能Linux服务器 第10章 基于Linux服务器的性能分析与优化 作为一名Linux系统管理员,最主要的工作是优化系统配置,使应用在系统上以最优的状态运行.但硬件问题.软件问题.网络环境等 ...
- Linux就这个范儿 第10章 生死与共的兄弟
Linux就这个范儿 第10章 生死与共的兄弟 就说Linux系统的开机.必须经过加载BIOS.读取MBR.Boot Loader.加载内核.启动init进程并确定运行等级.执行初始化脚本.启动内核模 ...
- 【翻译】《深入解析windows操作系统第6版下册》第10章:内存管理
[翻译]<深入解析windows操作系统第6版下册>第10章:内存管理(第一部分) [翻译]<深入解析windows操作系统第6版下册>第10章:内存管理(第二部分) [翻译] ...
随机推荐
- TCP-Java--图谱
- jquery返回顶部和底部插件和解决ie6下fixed插件
(function($){ //返回顶部和底部插件 $.fn.extend({ goTopBootom:function (options){ //默认参数 var defaults = { &quo ...
- CMD 模块定义规范【转】
在 Sea.js 中,所有 JavaScript 模块都遵循 CMD(Common Module Definition) 模块定义规范.该规范明确了模块的基本书写格式和基本交互规则. 在 CMD 规范 ...
- Class.forName和ClassLoader的区别
一 看名字就知道了,一个是类的创建,一个类加载器 二 再看下Class.forName源码,调用了ClassLoader @CallerSensitive public static Class< ...
- 【Linux】time+dd测试硬盘读写速度
dd 是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换. dd 命令通用语法格式如下: dd if=path/to/input_file ...
- 写一个安全的Java单例
单例模式可能是我们平常工作中最常用的一种设计模式了.单例模式解决的问题也很常见,即如何创建一个唯一的对象.但想安全的创建它其实并不容易,还需要一些思考和对JVM的了解. 1.首先,课本上告诉我,单例这 ...
- 富文本编辑框和防止xss攻击
一.后台管理页面构建 1.创建后台管理url urlpatterns = [ ... # 后台管理url re_path("cn_backend/$", views.cn_back ...
- sql server 数据库代码备份及还原代码
--备份 BACKUP DATABASE [库名称] TO DISK='E:\qq\ddd.bak' --备份并覆盖 BACKUP DATABASE [库名称] TO DISK='E:\qq\ddd. ...
- python在Android下的自动化测试用法
# This Python file uses the following encoding: utf-8from com.android.monkeyrunner import MonkeyRunn ...
- svn图标显示不正常,文件夹显示但文件不显示svn图标
svn图标显示不正常,文件夹显示但文件不显示svn图标 这个问题的引发是自己造成的,使用myEclipse时progress会卡在 refresh svn status cache (0%)这里, ...