STM32CubeMX ST官方的固件库已经停止更新,官方推荐用STM32CubeMX生成项目的初始化代码。STM32CubeMX是图形化界面,点击鼠标就能配置,比固件库方便很多。 STM32CubeMX依赖Java运行环境,要安装JRE 1.8: 1
| sudo pacman -S jdk8-openjdk
|
在ST的[color=var(--link-color)]官方网站上下载安装文件,我下载的是5.3.0版本。解压后有三个文件,Windows通过运行exe文件安装,Linux通过运行.linux后缀的文件安装: 1
| sudo ./SetupSTM32CubeMX-5.3.0.linux
|
会跳出一个图形化安装界面,不停地点下一步就行。安装完成后,启动软件,点击File - New Project新建一个工程。此时会看到选择芯片型号的界面,可以通过勾选筛选条件过滤出目标芯片,我的芯片型号是STM32F103RCT6,ARM Cortex-M3架构。芯片型号选择好之后,点击Start Project,会有配置引脚的界面。在我的开发板上,PA8和PD2两个GPIO口驱动两个LED灯,点击对应的引脚,将它们配置为GPIO_Output。
GPIO配置接下来是时钟配置,暂时先保持默认的配置吧。
时钟配置再接下来是项目配置,比较重要是的Toolchain/IDE那一项的选择。我选择的是Makefile,使用make来管理项目。点击右上方的GENERATE CODE按钮生成项目的代码。Windows用户还可以选择MDK-ARM,最后会生成代码以及MDK的项目文件,可以用MDK打开、编辑和构建工程。
项目配置这里再插一句,上图最下方可以看到有个Firmware目录的设置,默认配置在用户的home目录下。如果嫌碍眼,可以打开Help - Updater Settings,修改成其它的目录。 工程的目录下生成了如下文件: 1
2
| $ ls -F
Drivers/ Inc/ LedTest.ioc Makefile Src/ startup_stm32f103xe.s STM32F103RCTx_FLASH.ld
|
可以看到有个Makefile文件;startup_stm32f103xe.s是芯片的启动代码,是汇编语言;Drivers/文件夹中是自动生成的芯片底层代码,和固件库的组织很类似;Src/目录下有包括main.c在内的需要用户修改的源码文件。
|