这里讲下手动加载STM32CUBE固件库的使用问题。这里以STM32CubeL1的CUBE固件库的加载过程为例。先从ST官网或其它地方下载到针对STM32L1系列的CUBE固件包stm32cube_fw_l1_v120.zip,将其放到除了Repository Folder文件夹的任何地方,然后进行库文件的加载,即把下载到的stm32cube_fw_l1_v120.zip加载到STM32CUBEMX环境里。 先点击 HELP\Install new liabrary...出现如下界面:【图中的32CubeL1固件库的地方已经绿色方框了,说明已经是加载好了。加载前应该是空白框,这里示意下而已。】
点击上图中的红色箭头所指,进行压缩包的加载完成。如下图所示:
3、这里再聊聊工程项目文件的路径话题。点击STM32CubeMx的菜单 project\settings\即可看到下面图示界面。有关工程项目的名称、路径、编译环境、用到的MCU型号及其固件库的信息都显示得很清楚,你可以自行命名工程项目和调整其存放目录。注意,最下面两项关于MCU及固件版本信息此处你没法调整。
这里要提醒的是,工程项目路径中不能夹杂中文字符,不然编译时会出错,并做如下提示:
还有,你建立工程文件后,电脑里安装的相关的编译环境版本要匹配,不要低于STM32CubeMx里期望的。
4、最后提下,使用STM32CubeMx配置过程中常遇到的其它几个话题。
4.1、在做CLOCK configuaration时,如果需要用到外部时钟源的话,必须在管脚配置状态Pinout栏,对RCC外设进行配置。
其中一个选项Bybass clock source 是指从外部引入相应的时钟源到MCU振荡电路部分。Crystal/Ceramic Resonator 是指我们常用的晶体或陶瓷振荡器。
4.2、在做NVIC【中断矢量控制器】配置时,这点需要你对各个系列内核的中断控制有所了解,在对32F1/F2/F3/F4系列芯片配置时,首先要选择中断优先级的分组,然后再对各个中断源进行优先级的安排,当然后面可以在代码中适时更改。如下图所演示:
当然对于M0或M0+内核的32F0/32L0来说就没有中断优先级分组的问题,只需设置优先级高低就好。如下图所演示:
4.3、不算问题的问题。
的确,利用STM32CUBEMX可以帮助开发工程师方便地对STM32 MCU的有关外设管脚和时钟及中间件做配置,整个过程中多数情况下只需动动鼠标就好,最后生成比较完整的配置文件供工程项目使用。尤其在管脚安排和时钟配置方面,大大节省了工程师们研读手册的时间和精力。不过它毕竟是个辅助工具,虽然省却了许多研究手册的时间,但不等于你啥都不要研读就能完成的,基本的东西还是需要了解和研读,即使动鼠标打勾也还得知道怎么选才行。
比方说,前面提到的NVIC配置问题,如果不清楚NVIC基本知识及相关应用的响应需求,一通乱点后生成的NVIC配置文件恐怕根本不是你真正想要的。
再比方常见的TIMER应用配置问题,如果你对STM32 TIMER没做基本了解,在做TIMER配置时看到下面选项估计也无从下手。
最后顺便提下,STM32CUBE工具软件及相关库文件涉及的东西很多,其版本一直有保持更新完善中,尽量使用最新版本,建议开启其自动升级功能。在对STM32CubeMx升级时往往需要重启,重启后一般要以管理员身份操作才能完成升级。