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/

STM32CubeMX下载地址:http://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-configurators-and-code-generators/stm32cubemx.html

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新建工程的更多相关文章

  1. 第10章 新建工程-库函数版—零死角玩转STM32-F429系列

    第10章     新建工程—库函数版 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fire ...

  2. STM32CubeMX新建工程+基本IO配置过程

    Ⅰ.写在前面 学习本文之前可以查看我前面的文章: STM32CubeMX介绍.下载与安装 STM32CubeMX使用方法及功能介绍 本文接着上一篇文章结合基本IO配置实例,讲述关于STM32CubeM ...

  3. 《构建之法》之第8、9、10章读后感 ,以及sprint总结

    第8章: 主要介绍了软件需求的类型.利益相关者,获取用户需求分析的常用方法与步骤.竞争性需求分析的框架NABCD,四象限方法以及项目计划和估计的技术. 1.软件需求:人们为了解决现实社会和生活中的各种 ...

  4. 敏捷软件开发:原则、模式与实践——第10章 LSP:Liskov替换原则

    第10章 LSP:Liskov替换原则    Liskov替换原则:子类型(subtype)必须能够替换掉它们的基类型(base type). 10.1 违反LSP的情形 10.1.1 简单例子 对L ...

  5. 孙鑫视频学习:对第10章设置线宽时为什么不调用UpDateData(TRUE)的理解

    在第10章10.2.1小节中,首先分别对视图类和对话框类添加了一个名为m_nLineWidth的int型变量,再将用户在CSetting dlg对话框的edit控件中输入的线宽值记录在dlg.m_nL ...

  6. 第10章 系统级I/O

    第10章 系统级I/O 10.1 Unix I/O 一个Unix文件就是一个m个字节的序列:B0,B1,…,BK,…,Bm-1 Unix I/O:一种将设备优雅地映射为文件的方式,允许Unix内核引出 ...

  7. 高性能Linux服务器 第10章 基于Linux服务器的性能分析与优化

    高性能Linux服务器 第10章    基于Linux服务器的性能分析与优化 作为一名Linux系统管理员,最主要的工作是优化系统配置,使应用在系统上以最优的状态运行.但硬件问题.软件问题.网络环境等 ...

  8. Linux就这个范儿 第10章 生死与共的兄弟

    Linux就这个范儿 第10章 生死与共的兄弟 就说Linux系统的开机.必须经过加载BIOS.读取MBR.Boot Loader.加载内核.启动init进程并确定运行等级.执行初始化脚本.启动内核模 ...

  9. 【翻译】《深入解析windows操作系统第6版下册》第10章:内存管理

    [翻译]<深入解析windows操作系统第6版下册>第10章:内存管理(第一部分) [翻译]<深入解析windows操作系统第6版下册>第10章:内存管理(第二部分) [翻译] ...

随机推荐

  1. [shell基础]——echo命令

    echo命令:在shell中主要用于输出 1. -n     不换行的显示结果(默认是换行的) 2. -e " "  支持双引号中使用一些特殊字符 常用的特殊字符有 \a 发出警告 ...

  2. 初学Hadoop之WordCount词频统计

    1.WordCount源码 将源码文件WordCount.java放到Hadoop2.6.0文件夹中. import java.io.IOException; import java.util.Str ...

  3. 2017 年 9 月 27 日 js(1.两个select 内容互换 2.单选按钮 同意可点击下一步 3. 全选框)

    1.两个select 内容互换 <!DOCTYPE html><html>    <head>        <meta charset="UTF- ...

  4. ssh整合(spring + struts2 + hibernate)xml版

    1.1分层 1.2jar节点 <dependencies> <dependency> <groupId>junit</groupId> <arti ...

  5. ECMAScript 6简介

    一.起步 1.扎实的HTML/CSS/Javascript基本功,这是前置条件. 2.不要用任何的构建项目工具,只用最简单的<script>,把教程里的例子模仿一遍,理解用法.不推荐上来就 ...

  6. 【数据库】9.0 MySQL入门学习(九)——获得数据库和表的信息、日期计算、查询、选择特殊列

    1.0 SELECT语句用来从数据表中检索信息. SELECT what_to_select FROM which_table WHERE conditions_to_satisfy; what_to ...

  7. 对json缓存进行操作

    var data={ id:1, name:"张三" } //存储缓存 var arrdata=[]; arrdata.push({id:data.id,name:data.nam ...

  8. iPython与notebook的基本用法

    1 Ipython 安装 pip install ipython 2 Notebooke 基本用法 启动ipython使用ipython 启动notebook 使用 ipython notebook ...

  9. ORACLE中一个字符占多少字节?

    问题描述 或许你会说一个中文字符占2个字节,这是一定的?如何计算一个字符串的字节数? 解决方案 在oracle中一个字符特别是中文占几个字节是不同的. 比如我创立一个表create table tes ...

  10. day006-多线程

    1. 线程概念 a)     什么是主线程 Java程序启动过程中自动创建的并执行main方法的线程称为主线程 主线程的执行路径: 从main方法开始到main方法结束 b)什么是子线程 除了主线程的 ...