STM32Cube IDE 安装与使用

stm32IDE安装

sSTM32Cube IDE 安装与使用

关于STM32Cube IDE

大家基本都用MDK和IAR做开发,大部分应该都是盗版的。 除了这些盗版IDE集成开发环境,其实我们还有另外一种选择,就是基于gcc开发。 但是一说到linux,只做过单片机的朋友就退却了,认为很麻烦,很难学。 其实这不正是从单片机到学linux的一个好过渡吗? 为了解决盗版问题,ST和NXP都推出了基于Eclipse+GCC的集成开发环境。 NXP的叫MCUXpresso IDE。 ST的就是STM32Cube IDE。 使用芯片厂家的IDE比自己用Eclipse+GCC搭建的环境方便。 例如ST的,就将STM32CubeMX集成在一起。 现在我们一起看看ST这个IDE怎么用。

安装

下载路径: https://www.stmicroelectronics.com.cn/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-ides/stm32cubeide.html?dl=CFKqjuM%2BfnE70nhovdEDBw%3D%3D%2CHmHG6ylhgRzB1jq3M6%2FGOlSN2AJz2iPOYUrz4rvy3ge6WAxlUUuXwCNjNZxXYo0vBiLyYNLHZW3Iq29GboDiye6%2BYa%2Fd1kR%2FkIJ8wkWbqrdd6OEMmI9J04T59XbrC6NZUjKjGbAUvh%2Frf5qxE%2B8ip%2BqVesN50lDSBRL9lI%2F1rYD1PlRZMerG0YC4oULCuDiEY69Y3Tujzg9iUUvbsEiVlePOQrv8pssPFxHQZFeBM4tnyZ8z80PlRTkSqqsxqnBDxQGUhXWjYK%2BnbqAbpGmF4u0CTgMUt64619DSf5s0tSEH7jBQ%2BdVOntCtNQkhnHfQZ0xa1J9QLXZDoIeUthTmKIBPA8r68Av8RoNVVei5AcvKc4Sr37nyw5fkld4FqsA%2BGNcjdAVNAQtJ20rlk3HvLKauFD0TRriVnfLGP40DJW71OjI%2FBVP9FUC9eozIC4%2BOc8xzJuyytxJnYcehXbmVEQ%3D%3D

无脑默认安装即可。

建立工程

启动后进入主界面,左边有两个蓝色方形,上面的是创建工程,下面是导入工程。

点击创建工程,弹出芯片选择界面,这里我们选择H750VB 确定后,弹出工程配置界面,在本界面可以设置工程名称、工程保存路径。 编程用C语言。 目标文件类型是可执行文件而不是静态库。 工程类型选择STM32Cube。 确定后弹出Cube界面,这时工程左边只有一个.ioc文件, 在任何时候可以通过双击这个文件弹出stm32Cube界面。 在界面内可以配置管脚功能,左键点击对应管脚,弹出这个管脚可配置的功能,选择要用的功能即可。 如图,我们配置了SW调试口、串口4、QSPI BANK1。 QSPI是一个完整的接口,所以是绿色。串口只使用了TX和RX,是黄色的。 然后点击菜单Project中的Generate Code生成代码。 注意: IDE是新装的,第一次生成代码的时候报错。根据错误进行update设置更新后,问题解决。 生成的工程文件如下:

.project是IDE工程文件 *.ioc是Cube工程,随时可以双击本文件打开Cube配置界面 *.ld是GCC编译环境的工程链接文件 Src文件夹是用户代码,main.c就放在里面 Drivers是库文件,包含HAL库和CMSIS代码 Startup是启动代码

我们看下工程文件

 

先看下main.c生成的main函数

main函数中调用MX_QUADSPI_Init();函数初始化QSPI,生成QSPI初始化函数跟什么有关呢? 用Cube配置相关。我们再打开Cube的配置界面。 芯片图左边有一栏设备栏,Cube配置外设就是通过这里配置。 点击Connectivity, 里面是接口,点击QUADSPI,弹出配置窗口。 上部是接口模式配置,我们是用QSPI BANK1,这个是PIN配置好之后的默认配置,不需要修改。 下面是IO口配置,这里有个问题,网上很多人问QSPI跑不了高速度,原因就是IO口默认速度是LOW,我们要把它改为高。

时钟配置

时钟配置主要3点

  1. 配置管脚为时钟。
  2. 配置RCC设备,选用外部使用。
  3. 时钟树配置。 上图是管脚和RCC配置,我们选用外部时钟,就要将对应管脚设置为时钟输入。 并且在RCC模式中选择外部时钟。 打开时钟配置,当前是默认内部时钟的配置,我们使用外部时钟,跑400M,所有要重新配置。 时钟配置中选择分频的输入框不是很好操作,请点击选择框的左边,再把鼠标往下拖,就可以选择对应分频了。 但是软件其实可以自动计算分频。 我们只需要: 1 红框1选择HSE作为时钟原。 2 红框2选择PLL做为时钟。 3 红框3在时钟中填入400,回车确认。Cube就会自动计算时钟树的分频和倍频。 4 时钟树会出现红色警告,人工调整。 5 QSPI时钟在最下面,选择HCK3=200M作为QSPI时钟源,在QSPI配置中我们设置了2分频,那么QSPI的时钟就是100MHz。

所有配置完成后记得重新生成代码额。

串口外设配置

串口没有变为绿色,我们看看串口变绿色是怎么配置。 点击设备UART4,模式选择同步模式,PIN脚就变绿色了。 配置框下部分是串口各种参数配置。

重新生成代码,查看main函数,可见已经增加了串口4初始化函数。 如果在配置串口时,NVIC Settings勾了Enabled,那么在stm32h7xx_it.c文件中就会有以下串口中断

程序编译

点击Project中的Build Project菜单进行编译,编译过程和结果在IDE下部,如下图: 输出的信息都是GCC格式的,跟MDK不一样。 从中我们可以可导出使用的编译工具链名称是arm-none-eabi-gcc。

版本

大家要注意,程序默认编译的是debug版本。

在工程中也只是生成了Debug版本的文件:

.elf是编译得到的程序文件,可以通过gcc工具转换为hex文件。 .map是编译后代码和变量信息,跟MDK一样。 makefile是gcc组织编译的文件,此处的makefile是最顶层的。 .mk也是makefile文件 关于gcc,关于makefile,可能需要一本书才可以说明白


END

2020-03-22