STM32:自主新建HAL库工程模板流程

一、下载STM32Cube包

        STM32Cube 是 ST 提供的一套性能强大的免费开发工具和嵌入式软件模块,能够让开发人员在 STM32 平台上快速、轻松地开发应用。它包含两个关键部分:
        1)图形配置工具 STM32CubeMX。允许用户通过图形化向导来生成 C 语言工程。
        2)嵌入式软件包(STM32Cube 库)。包含完整的 HAL 库(STM32 硬件抽象层 API),配套的中间件(包括 RTOS,USB,TCP/IP 和图形),以及一系列完整的例程。嵌入式软件包完全兼容 STM32CubeMX。

        STM32Cube下载方法:

        打开STM32Cube MCU和MPU包: 相关产品网页,如下:

      

        根据左侧的产品型号选择对应的 Cube,以L4为例,点击右边Open software page,如下:

           

 拖动到页面最底端,选择STM32CubeL4,点击右边Get latest(或选择自己需要的版本):如下:

           

 接受许可,有STM32账号的就可以直接下载了,没有账号的也可以填写邮箱信息通过邮箱链接下载,不需要注册。

二、新建HAL库工程模板

        下载完成后解压,文件包含如下:

                 

 1. 新建工程文件夹

        本地新建一个Template工程文件(文件名可自定义),在文件夹里再新建3个子文件夹,如下:

             

 2.文件拷贝

        1)将Cube包STM32Cube_FW_L4_V1.18.0\Drivers\STM32L4xx_HAL_Driver里的Inc、Src文件夹整体copy到新建的Template\HALLib下

            

         2)将STM32Cube_FW_L4_V1.18.0\Drivers\CMSIS\Device\ST\STM32L4xx\Source \Templates\arm下的startup_stm32l496xx.s(根据具体型号选择所对应的)copy到新建的Template\CMSIS文件下;

        将STM32Cube_FW_L4_V1.18.0\Drivers\CMSIS\Include下的所有文件copy到新建的Template\CMSIS文件下,也可只copy如下所示的几个.h文件。

        3) 将STM32Cube_FW_L4_V1.18.0\Drivers\CMSIS\Device\ST\STM32L4xx\Include下的stm32l4xx.h、stm32l496xx.h、system_stm32l4xx.h三个文件copy到Template\User下

 将STM32Cube_FW_L4_V1.18.0\Projects\STM32L476G-EVAL\Templates\Inc(其实就是官方对应型号开发板的demo下的头文件,根据不同的cube包和具体型号选择对应的即可)下的三个头文件copy到Template\User下

将STM32Cube_FW_L4_V1.18.0\Projects\STM32L476G-EVAL\Templates\Src下的四个源文件也都copy到Template\User下

         copyp完后的Template\User如下(包含10个文件):

 3.新建工程

打开Keil MDK软件,点击project-new uVision project,定位到之前新建的Template\User下输入文件名(即工程文件名),点保存

        如下,选择对应的MCU型号,如果没有的话说明没有安装对应型号的pack,需要进行安装。

      

        点击ok后弹出Manage Run-Time Environment 对话框,点击cancel即可。

        接下来需要将前面copy的文件加入我们的工程中。右键点击 Target1,选择 Manage Project Items

                  

         将Targets重命名为Template,再在Groups里新建三个文件夹

          

         在HALLib下点击Add File,选择之前copy的Template\HALlib/Src,添加需要的文件,如下图添加了几个必须的,实际应用中用到的外设都需要添加,也可全部添加(不过工程过大,编译慢)。

        同样的方法,在CMSIS里添加startup_stm32l496xx.s(默认添加文件类型为.c,这里要修改为.s;在Uesr里添加main.c、stm32l4xx_hal_msp.c,stm32l4xx_it.c 和 system_stm32l4xx.c四个文件。

 

4. 设置头文件存放路径

点击魔术棒 之后,进入 C/C++选项卡,点击Include Paths,添加Template里面包有包含头文件的路径。

同时,还需要添加全局宏定义标识符,所谓全局宏定义标识符(就是在工程中任何地方都可见)。添加方法是点击魔术棒 之后,进入 C/C++选项卡,然后在 Define 输入框连输入:USE_HAL_DRIVER,  STM32L496xx。(这里注意两个标识符中间必须有逗号隔开)

  最后进入Output 选项卡。勾上“Create HEX File”选项,Create HEX File 选项选上是要求编译之后生成 HEX文件,烧写程序要用到。

 5.编写main函数,编译程序

        打开main.c文件,将多余内容删除,如下所示,点击编译。 

 

 至此,HAL库工程模块新建完成。

猜你喜欢

转载自blog.csdn.net/chn_zx/article/details/132420656