1、STM32CubeMX简介
STM32CubeMx软件是ST公司为STM32系列单片机快速建立工程,并快速初始化使用到的外设、GPIO等,大大缩短了我们的开发时间。同时,软件不仅能配置STM32外设,还能进行第三方软件系统的配置,例如FreeRtos、FAT32、LWIP等等,而且还有一个功能,就是可以用它进行功耗预估,还有,这款软件可以输出PDF、TXT文档,显示你工程里面的GPIO等外设的配置信息,供你进行原理图设计等。
STM32CubeMX几乎覆盖了STM32L475xx全系列芯片。具有如下特性:
1、 只管的选择MCU型号,可指定系列、封装、外设数量等条件。
2、 微控制器图形化配置。
3、 自动处理引脚冲突。
4、 动态设置时钟树,生成系统时钟配置代码。
5、可以动态设置外围和中间件模式和初始化。
6、功耗预测。
7、C代码工程生成器乳钙了STM32微控制器初始化编译软件,如IAR,KEIL,GCC。 8、可以独立使用或者作为Eclipse插件使用。
STM32CubeMX和STM32Cube的关系,STM32Cube包含STM32CubeMX图形工具和STM32Cube库两个部分,使用STM32CubeMX配置生成的代码,是基于STM32Cube库的。也就是说,我们使用STM32CubeMX配置出来的初始化代码和STM32Cube库兼容,例如硬件抽象层代码就是使用STM32的HAL。不同的STM32系列芯片,会有不同的STM32Cube库支持,而STM32CubeMX图形工具只有一种。所以我们配置不同的STM32系列芯片,选择不同的STM32Cube库即可。
2、打开STM32CubeMX软件
图片中的序号1和3是新建工程的快捷按钮,序号2和4是快速打开工程快捷按钮。
图片中的5是检测更新,用于检查STM32的官方固件库是否有更新,6是管理自己所下载的固件库,7升级的一些设置选项(包含固件包存储位置等)。打开7可以选择固件库的安装以及解压的位置(最好不要包含中文路径)。
我们将自己下载的HAL库文件解压放到一个目录中,然后通过Repository Folder指定该固件库的路径。
点击OK后,再打开“Manage embedded software packages”管理固件库,可以看到如下图所以,方框呈绿色,证明固件库已存在。
主菜单Project选项,有生成代码、生成工程报告以及设置选项,这些选项需要建立一个实际的工程以后才能使用。
3、创建和保存工程
打开STM32CubeMX软件后,点击“New Project”创建新工程。之后会弹出MCU选择窗口,如下图:
依次在选项卡Series,Lines和Package之下选择对应的参数,然后选择对应的芯片型号。如下图:
最后双击选择具体的芯片型号,如图中选中的芯片。
最后选则File->Save Project保存工程到文件夹下。工程的名字以.ioc为后缀。
4、工程配置
工程新建好之后会直接进入Pinout选项卡,这个时候界面会展示芯片完整的引脚图。在引脚图中,我们可以对引脚功能进行配置。黄色的引脚主要是一些电源和GND引脚,如果某个引脚已经被配置过,那么会显示为绿色,提示已经使用。
RCC配置
对STM32芯片而言,RCC配置的重要性不言而喻。在STM32CubeMX中,RCC的相关设置却非常简单,因为STM32CubeMX把时钟系统独立出来单独配置。在操作界面,依次点击Pinout->Peripherals->RCC选项卡便可进入RCC配置栏。如下图:
从上图可以看出,RCC配置栏实际上只有6个配置项。选项High Speed Clock(HSE)用来配置HSE,第二个选项Low Speed Clock(LSE)用来配置LSE,选项Master Clock Output 用来选择是否使能MCO引脚时钟输出,选项LSCO Clock Output用来选择是否使能将低速时钟输出到外部LSCO,选项SAI1 Extern Clock用来配置是否使能外部SAI1时钟,最后一个选项SAI2 Extern Clock用来配置是否使能外部SAI2时钟。
在这里选择使用HSE,所以我们设置选项High Speed Clock(HSE的值为Crystal/Ceramic Resonator(使用晶振/陶瓷振荡器)即可。这里还需要说明一下,值 Bypass ClockSource的意思是旁路时钟源,也就是不使用使用晶振/陶瓷振荡器,直接通过外部提供一个可靠的4-26MHz时钟作为HSE。配置好的RCC配置选项如下图所示,而且从图中可以看出在打开了HSE后,右边的引脚图中,相应的引脚会由灰色变为绿色,表示该引脚已经被使用。