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库工程模块新建完成。

您好!关于STM32HAL库与LoRa通信模块的问题,我可以为您提供一些基本信息。 STM32HAL库是STMicroelectronics提供的一种针对STM32微控制器的硬件抽象层(Hardware Abstraction Layer)。它提供了一系列的函数和驱动程序,方便开发人员在不同的STM32系列芯片之间进行移植和开发。 至于LoRa通信模块,LoRa是一种低功耗远距离无线通信技术,适用于物联网(IoT)应用。LoRa通信模块基于LoRa技术,通过无线电波进行通信,具有长距离传输、低功耗和大容量等特点。 在使用STM32HAL库与LoRa通信模块时,您可以通过以下步骤进行操作: 1. 硬件连接:将LoRa通信模块与STM32微控制器连接。通常情况下,您需要将模块的SPI接口、GPIO引脚等与STM32微控制器的对应引脚相连。 2. 初始化STM32HAL库:在代码中使用STM32HAL库的相应函数进行初始化。这些函数包括GPIO初始化、SPI初始化等。 3. 配置LoRa通信模块:使用STM32HAL库的相关函数配置LoRa通信模块的参数,例如频率、发射功率、扩频因子等。 4. 发送和接收数据:使用STM32HAL库的函数进行LoRa通信模块的数据发送和接收操作。您可以通过SPI接口与模块进行数据交互。 需要注意的是,具体的操作细节和代码实现可能会根据您所使用的具体STM32微控制器型号和LoRa通信模块型号而有所差异。因此,建议您参考STM32HAL库和LoRa通信模块的相关文档和示例代码,以获得更详细的信息。 希望这些信息对您有所帮助!如果您还有其他问题,请随时提问。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值