当前位置: 首页 > news >正文

STM32CubeIDE基础学习-新建STM32CubeIDE基础工程

STM32CubeIDE基础学习-新建STM32CubeIDE基础工程


前言

有开发过程序的朋友都清楚,后面开发是不需要再新建工程的,一般都是在初学时或者有特殊需要的时候才需要新建项目工程的。

后面开发都是可以在这种已有的工程上添加相关功能就行,只要前期准备一个工程作为模板,可以大大减少在新建工程上的宝贵时间,效率也可以得到提升。

下面就来学习一下新建工程的具体步骤。


第一步:双击打开软件后,进入主界面如下图所示:

在这里插入图片描述

第二步:点击Strat new STM32 project。

在这里插入图片描述

或者按照下面的步骤点击新建工程:

在这里插入图片描述

点击新建后,可能会有下面图片这个需要连网的提示,可以点击NO,但是后面可能需要连网下载芯片固件包,为了避免出错建议点击Yes,不然后面使用时也会不断提示需要连网的。

在这里插入图片描述

进入工程主界面如下图所示:

在这里插入图片描述

使用过STM32CubeMX软件的朋友就比较熟悉这个界面了,使用步骤也完全基本一样的。

第三步:输入芯片型号,进行相关对应工程的配置。

在这里插入图片描述

以STM32F103C8T6芯片为例进行操作:
①输入芯片型号。
②确定选择芯片。
③芯片的相关描述,可以从这里获取到芯片的基本相关信息,往下拉即可详细阅读。
④芯片的数据手册,可以点击预览或下载到本地进行阅读。
配置完成后点击右下角⑤的Next。

这里选择芯片操作有个小技巧,可以点击芯片左边的星星,对该芯片进行收藏,后面新建工程需要使用该型号的芯片时可直接点击左上角的星星,就会列出收藏的芯片,然后就可以选择了,不用再次输入芯片型号的步骤这么麻烦的,如下图所示:

在这里插入图片描述

点击左上角收藏的星星就可以列出被收藏的芯片了,如下图所示:

在这里插入图片描述

第四步:设置工程名称和路径。

在这里插入图片描述

按照标号步骤来配置就行,注意名字和路径都不能存在中文,因为这个软件对中文路径并不友好,否则会报错的,完成后点击Next。

第五步:选择芯片固件包的版本。

在这里插入图片描述

根据下载的固件包版本来选择即可,然后点击Finish。

这里需要注意一下Code Generator Options的选择问题(保持默认选择即可):
①第一个是添加必要的库文件到工程项目配置文件中作为参考,当工程需要库文件时,会链接到软件安装的CubeIDE安装路径的库文件。这样的优点就是可以减少代码量,但如果把该工程拷贝到别人电脑打开时,若电脑没有安装这个库文件时,则会找不到这个库文件从而报错。
②这个选项是默认不能选的,拷贝所有使用的库到工程文件夹中。
③只拷贝必要用到的库文件(默认选择的)。

如果出现下面这个界面,默认点击Yes就行。

在这里插入图片描述

第六步:完成后可能会提示下面的提示框,是选择下载器类型的,设置完成点击应用即可,推荐使用ST-LINK, 在新建工程时默认就是选择ST-LINK的。

在这里插入图片描述

第七步:提示下图这个信息说明需要登录账号去安装固件支持包的,现在还没用到,后面用到再安装也行。

在这里插入图片描述

接着提示下面这个界面,默认点击OK。

在这里插入图片描述

最终配置完前面的工程信息就可以进入到下图的功能配置界面了:

在这里插入图片描述

到此,基础部分的工程创建流程步骤就完成了,后面就根据功能需求来配置对应的功能就可以。具体功能的配置教程,可以看后面对应外设的文章就行。

注意:如果在配置过程中,需要最大化显示配置界面进行查看,可以点击下图这个按钮:

在这里插入图片描述

当配置完功能了,点击下图这个恢复按钮就可以恢复到最初的最小化窗口:

在这里插入图片描述

新建基础部分的工程步骤不是很复杂,多操作几遍就会熟练掌握了,核心在后面部分的外设配置,比如GPIO,时钟等外设配置。

相关文章:

  • qt QRadioButton 及QButtonGroup 使用
  • 事务处理
  • sqoop-import 详解
  • 【论文精读】Mask R-CNN
  • H5:列表
  • MathType玩耍指南
  • 分享一个AI工程师从入门到精通学习路径
  • 智能合约的编程语言
  • 城市平均高温、平均低温数据爬取与可视化
  • 2195. 深海机器人问题(网络流,费用流,上下界可行流,网格图模型)
  • cookie和session的区别(七大不同)
  • [LeetBook]【学习日记】获取子字符串 + 颠倒子字符串顺序
  • Ruoyi框架上传文件
  • 超级副业SOP,各行各业,太全了!
  • VM新建虚拟机
  • JavaScript-如何实现克隆(clone)函数
  • dva中组件的懒加载
  • HomeBrew常规使用教程
  • HTML中设置input等文本框为不可操作
  • JavaScript函数式编程(一)
  • Java比较器对数组,集合排序
  • js作用域和this的理解
  • October CMS - 快速入门 9 Images And Galleries
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • 浏览器缓存机制分析
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • postgresql行列转换函数
  • ​批处理文件中的errorlevel用法
  • # Maven错误Error executing Maven
  • #QT(一种朴素的计算器实现方法)
  • $.proxy和$.extend
  • ${ }的特别功能
  • (1)Nginx简介和安装教程
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (算法二)滑动窗口
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
  • (转)Linux整合apache和tomcat构建Web服务器
  • *** 2003
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .net 托管代码与非托管代码
  • .NET 中让 Task 支持带超时的异步等待
  • .NET的微型Web框架 Nancy
  • .NET开发不可不知、不可不用的辅助类(三)(报表导出---终结版)
  • .NET企业级应用架构设计系列之应用服务器
  • .skip() 和 .only() 的使用
  • /usr/local/nginx/logs/nginx.pid failed (2: No such file or directory)
  • [ MSF使用实例 ] 利用永恒之蓝(MS17-010)漏洞导致windows靶机蓝屏并获取靶机权限
  • [20161214]如何确定dbid.txt
  • [2018][note]用于超快偏振开关和动态光束分裂的all-optical有源THz超表——
  • [2669]2-2 Time类的定义
  • [C++]——带你学习类和对象
  • [jQuery]使用jQuery.Validate进行客户端验证(中级篇-上)——不使用微软验证控件的理由...
  • [LeetCode]-225. 用队列实现栈-232. 用栈实现队列