之前使用stm32都是用直接操作寄存器的方法,毕竟103系列的功能相对比较简单,同时寄存器数量也还不睡特别多,F7系列就不一样了,功能太强大了,虽然也可以像103一样直接操作寄存器,但是那样可能会花更多的时间和精力,更何况我们这种白天上班晚上干活的人没有太多的精力耗费呀,只能站在各位前辈的肩膀上。因此研究了一下stm32的固件库。
STM32Cube目前几乎支持stm32全系列,其目录结构如下:
一、Drivers文件夹
Drivers文件夹包含BSP,CMSIS和STM32F7xx_HAL_Driver三个子文件夹。
1、BSP文件夹
该文件夹提供了一些直接与硬件打交道的API,例如lcd,触摸屏等,还有ST官方Discovery,Nucleo开发板等。
2、CMSIS文件夹
该文件夹是符合CMSIS标准的软件抽象层组件相关文件。主要包括DSP库,Cortex-M内核及其设备文件,微控制器专用头文件、启动代码、专用系统文件等。
3、STM32F7xx_HAL_Driver文件夹
这个文件夹是非常非常重要的,它包含了所有的STM32F7xx系列HAL库头文件和源文件,也就是所有底层硬件抽象层API声明和定义。它的作用是屏蔽了复杂的硬件寄存器操作,统一了外设接口函数。
二、Middlewares文件夹
该文件夹下面有ST和Third_Party 2个子文件夹。ST文件夹下面存放的是STM32相关的一些文件。Third_Party文件夹是第三方中间件。具体的文件夹介绍等用的时候再详细研究。
三、Project文件夹
这个文件夹存放的是一些可以直接用的实例工程文件。每个文件夹对应一种st的官方开发板。我们的板子是f769,可以直接打开文件夹STM32F769I-Discovery下对应的工程:
这是用MDK5创建的工程,一定要用MDK5才能打开。我们可以直接编译,看看能不能编译通过:
如图,编译通过了,没有错误也没有警告及,非常好,可以直接用。
四、Utilities文件夹
该文件夹还不知道就怎么用,有待仔细研究。
-------------------------------------------------------------------------------------------------------------------------------------------------
下面就试着创建工程,但是在创建工程之前我们要先规划一下我们工程的结构,以便后面进行代码的维护。
首先我们新建一个Template的文件夹,作为以后使用的模板工程。然后里面再新建几个文件夹,如下:
然后打开mdk新建工程,并保存在usr文件夹下:
然后选择对应的器件,我们的是f769NI,如下:
然后点击ok,弹出管理运行时环境,直接关闭即可。
现在工程框架已经搭好了,但是还没有加入库文件。在加入库文件之前我们先删掉usr文件夹下的Listing文件夹和Objects文件夹,这是mdk自动生成的,我们不打算用它们。
然后我们复制官方hal库的驱动文件到我们的HAL_LIB文件夹下:
复制Src和Inc到我们的HAL_LIB下:
下面将复制一些启动文件到我们的CORE目录下,复制STM32CubeF7_V1.5.0\STM32Cube_FW_F7_V1.5.0\Drivers\CMSIS\Device\ST\STM32F7xx\Source\Templates\arm下的startup_stm32f769xx.s文件到我看的CORE文件夹下:
然后将F:STM32CubeF7_V1.5.0\STM32Cube_FW_F7_V1.5.0\Drivers\CMSIS\Include目录下的一些头文件复制到我们的CORE文件夹下,复制后的CORE文件下的文件如下:
上篇就到此为止,下篇继续进行,敬请期待!!!!!
点击此处,查看STM32F769I开发板官方资源。