8

【二】零基础上手HAL库之—熟悉Cubemx软件的框架

 3 years ago
source link: https://segmentfault.com/a/1190000040597313
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

【二】零基础上手HAL库之—熟悉Cubemx软件的框架

在完成了Hal库开发环境的搭建后,就是要开始使用此工具了,那么我们肯定有一些必要的准备工作要进行,本节内容仅仅讲解软件各个模块的功能,想要用好软件,第一步当然就是大体上的熟悉软件创建一个工程。如果还没搭建好环境可以看上一节内容:

2.1 前期准备

  • Stm32f103Rct6芯片的板子
  • Keil5软件
  • 以及上一节内容安装好的开发环境(Cubemx、JRE、Hal包)

主界面

点击打开软件可以得到如下界面:

image-20210828173825022

  • ①创建,打开,导入项目等操作。
  • ②调整窗口大小,以及输出值的一些操作。
  • ③更新软件,以及一些文献资料查找。
  • ④通过芯片类型创建一个项目
  • ⑤通过板子类型创建一个项目
  • ⑥查找一个例程

芯片选取

点击主界面④框选的部分,开始通过芯片类型创建一个工程

image-20210828181132252

  • ①搜索所需要的芯片。
  • ②内核类型。
  • ③芯片系列。(F1/F4/F7等等)
  • ④芯片系列细分。(103/100等等)
  • ⑤芯片封装类型。
  • ⑥其他(芯片的主频,Rom,Flash等等)
  • ⑦外设资源。
  • ⑧通过筛选后的芯片。

工程界面

双击选取芯片界面中⑧框选的部分,一个根据芯片类型的工程创建完成,可以看到如下工程界面,此界面大致可以分成如下四块用于配置芯片。

image-20210828183528037

  • ①Categories(种类)根据外设的种类来选择配置的外设。
  • ②A->Z(序号)根据外设首字母序号来选择配置的外设。
  • ③外设模式的配置以及此模式下的详细参数配置。
  • ④芯片引脚配置详情,绿色表示已经使用

时钟树配置界面

点击Clock Configuaration进入时钟树配置界面,学过stm32标准库的都应该很清除这个时钟树,我们先知道有这个东西,下一节会讲到这部分内容。

image-20210828184057430

项目配置

点击Project Manager进入项目配置界面,

image-20210828185009736

①项目名称(尽量不要用中文)。

②项目地址(注意注意!!!! 一定不要有中文名路径)。

③编译代码所用的IDE开发(我一般使用Keil进行)。

④堆栈大小的设置(一般使用默认即可)。

⑤芯片类型(一定要和所使用的芯片对应上)。

⑥固件包版本(不同的版本会有些许差异,但最新版准没错)。

代码生成

点击Code Generator 选项卡,后可见如下界面:

image-20210828190741003

  • ①复制所有的软件包到工程中。
  • ②复制所需的软件包到工程中。
  • ③不复制文件,从固件包位置引用相关的文件到工程中(见上一步固件包的默认位置)。
  • ④按照类型给每个外设设立独立的源文件(.c)和头文件(.h)。
  • ⑤重新生成时备份上一次产生的文件(有错误时,可以还原上一版本)。
  • ⑥重新生成时保留用户区的代码。
  • ⑦重新生成时删除原有的文件。
  • ⑧没使用的引脚设置为模拟状态引脚。

image-20210828191730586

  • ①驱动库选择可以是HAL库和LL库,不知道二者区别可以看之前内容
  • ②是否调用初始化函数,也就是你代码是否调用对应初始化函数。

    比如:你GPIO项勾选Not Generate Function Call,你main.c函数中就不会调用MX\_GPIO\_Init这个函数。

  • ③是否声明为static静态内链接函数,也就勾选时在外文件不能调用此函数。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK