第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章:内存管理(第二部分) [翻译] ...
随机推荐
- [Activator- HelloAkka] Define our Messages
An Actor does not have a public API in terms of methods that you can invoke. Instead its public API ...
- springMVC静态资源访问
springMVC默认是访问不到静态资源的,如css,js等,需要在xml里进行配置 保证已经配置好了 web.xml, <!-- Spring MVC servlet --> <s ...
- .NET Core 部署到CentOS–1.创建项目,简单部署
开发环境:Windows 10,部署环境:阿里云 CentOS 7.3 1. 创建应用 1) 创建项目, 配置应用生成部署包 2) 配置项目 编辑project.json, 追加环境项, 选项可参考这 ...
- 合约实战,代币合约,DAPP开发
1. ERC20标准 https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md pragma solidity ^; //定义接口 con ...
- ASP.NET MVC 音乐商店 - 0 概览
这是一个系列文章,原文内容出自微软的 MusicStore. 首先对原文内容进行了简单的翻译,以方便大家参考,另外对于其中的部分内容,也进行了简单的分析,使用的 Visual Studio 也换成了中 ...
- 【阿里云产品公测】小白对OTS两点小建议
作者:阿里云用户荷包蛋 我是大一的新生,作为一个爱技术爱学习爱折腾的熊孩子,我在暑假申请了ECS,学到了很多东西.现在阿里巴巴又开放了很多免费测试,我抱着学习和围观的心态申请了测试,其中有OTS这个高 ...
- Flexviewer调用特定的widget
Flexviewer调用特定的widget: 之前一直是自己添加个固定的key来调用widget 但是后来发现框架早就为你写好啦调用widget的方法 在WidgetManager中有个 public ...
- linux漏洞分析入门笔记-bypass_PIE
ubuntu 16.04 IDA 7.0 docker 0x00:漏洞分析 1.ASLR的是操作系统的功能选项,作用于executable(ELF)装入内存运行时,因而只能随机化stack.heap. ...
- Win8 Pro 64 Install .net3.5 在线升级会遇到错误0x800F0906。
很多人安装Win8后都遇到了无法升级.NET Framework 3.5.1的问题,在线升级会遇到错误0x800F0906. Uninstall Windows update kB: KB296682 ...
- 多线程 更新 winform 控件的值,以避免UI线程的卡顿
委托 private delegate void UpdateDGV_AddRes_CallBack(Int32 i,bool Res); 函数实现 private void UpdateDGV_De ...