【1】STM32·HAL库·新建工程模板【一步到位】

这篇具有很好参考价值的文章主要介绍了【1】STM32·HAL库·新建工程模板【一步到位】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、获取官方固件包

二、新建工程文件夹

1、新建文件夹

2、拷贝/新建工程相关文件

2.1、Drivers文件夹

2.2、Projects文件夹

2.3、User文件夹

三、新建工程框架

1、新建工程

2、保存工程

3、选择主控型号

4、删除文件夹

四、添加文件

1、设置工程名和分组名

2、添加启动文件

3、添加User源码

4、添加SYSTEM源码

5、添加STM32F4xx_HAL_Driver源码

6、取消只读权限

五、魔术棒设置

1、Target选项卡

2、Output选项卡

3、Listing选项卡

4、C/C++选项卡

5、Debug选项卡

6、Utilities选项卡

六、添加主函数,并编写代码

1、创建main.c

2、编写main.c并进行编译

七、VScode配置【可选】

1、载入Keil工程

2、转换编码格式


一、获取官方固件包

方法一:ST官网搜索STM32Cube

方法二:正点原子官网获取,STM32参考资料——STM32CubeXX固件包

二、新建工程文件夹

1、新建文件夹

创建Template文件夹,在文件夹中新建下面几个文件夹

keil利用官方hal固件库独立完成工程模板的创建,HAL库,stm32,嵌入式硬件,单片机

keil利用官方hal固件库独立完成工程模板的创建,HAL库,stm32,嵌入式硬件,单片机

2、拷贝/新建工程相关文件

2.1、Drivers文件夹

Drivers文件夹中新建BSP文件夹,CMSISSTM32Fxxx_HAL_Driver文件通过拷贝STM32Cube固件包中的Drivers文件夹来获取,SYSTEM可以通过正点原子例程文件中获取

keil利用官方hal固件库独立完成工程模板的创建,HAL库,stm32,嵌入式硬件,单片机

keil利用官方hal固件库独立完成工程模板的创建,HAL库,stm32,嵌入式硬件,单片机

打开STM32Fxxx_HAL_Driver文件夹,保留IncSrc文件夹(HAL库源码),其余删除

keil利用官方hal固件库独立完成工程模板的创建,HAL库,stm32,嵌入式硬件,单片机

打开CMSIS文件夹,保留DeviceInclude文件夹,其余删除

keil利用官方hal固件库独立完成工程模板的创建,HAL库,stm32,嵌入式硬件,单片机

2.2、Projects文件夹

Projects文件夹中新建MDK-ARM文件夹,用于存放MDK工程文件

keil利用官方hal固件库独立完成工程模板的创建,HAL库,stm32,嵌入式硬件,单片机

2.3、User文件夹

User文件夹中添加stm32f4xx_hal_conf.hstm32f4xx_it.cstm32f4xx_it.h文件,可以从STM32CubeF4固件包\en.stm32cubef4_v1-26-0_v1.26.0\STM32Cube_FW_F4_V1.26.0\Projects\STM32F4-Discovery\TemplatesIncSrc中获取,也可以从正点原子新建工程实验中获取

keil利用官方hal固件库独立完成工程模板的创建,HAL库,stm32,嵌入式硬件,单片机

keil利用官方hal固件库独立完成工程模板的创建,HAL库,stm32,嵌入式硬件,单片机

三、新建工程框架

1、新建工程

打开Keil5,选择新建工程

keil利用官方hal固件库独立完成工程模板的创建,HAL库,stm32,嵌入式硬件,单片机

2、保存工程

选择刚才创建的文件夹中的MDK-ARM,命名后点击保存

keil利用官方hal固件库独立完成工程模板的创建,HAL库,stm32,嵌入式硬件,单片机

3、选择主控型号

选择对应的芯片型号,点击OK

keil利用官方hal固件库独立完成工程模板的创建,HAL库,stm32,嵌入式硬件,单片机

点击Cancel

keil利用官方hal固件库独立完成工程模板的创建,HAL库,stm32,嵌入式硬件,单片机

4、删除文件夹

打开文件夹中的MDK-ARM,删除ListingsObjects文件夹

keil利用官方hal固件库独立完成工程模板的创建,HAL库,stm32,嵌入式硬件,单片机

keil利用官方hal固件库独立完成工程模板的创建,HAL库,stm32,嵌入式硬件,单片机

四、添加文件

1、设置工程名和分组名

点击分组管理图标,设置工程名为Template,分组名为StartupUserDrivers/SYSTEMDrivers/STM32F4xx_HAL_DriverReadme,点击OK

keil利用官方hal固件库独立完成工程模板的创建,HAL库,stm32,嵌入式硬件,单片机

2、添加启动文件

打开分组管理,选择Startup分组,点击Add Files

keil利用官方hal固件库独立完成工程模板的创建,HAL库,stm32,嵌入式硬件,单片机

回到Template目录,打开Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/arm,文件类型选择.s,选择对应的芯片型号,点击Add

keil利用官方hal固件库独立完成工程模板的创建,HAL库,stm32,嵌入式硬件,单片机

3、添加User源码

选择User分组,点击Add Files,回到Template目录,打开User,选择stm32f4xx_it.c,点击Add

keil利用官方hal固件库独立完成工程模板的创建,HAL库,stm32,嵌入式硬件,单片机

继续打开Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates,添加system_stm32f4xx.c文件

keil利用官方hal固件库独立完成工程模板的创建,HAL库,stm32,嵌入式硬件,单片机

4、添加SYSTEM源码

选择Drivers/SYSTEM分组,点击Add Files,回到Template目录,打开Drivers/SYSTEM,分别添加对应的delay.csys.cusart.c

keil利用官方hal固件库独立完成工程模板的创建,HAL库,stm32,嵌入式硬件,单片机

5、添加STM32F4xx_HAL_Driver源码

选择Drivers/STM32F4xx_HAL_Driver分组,点击Add Files,回到Template目录,打开Drivers/STM32F4xx_HAL_Driver/Src,添加如下文件(HAL库所需最少文件)

这里要注意:一定要点击OK,点击关闭不会保存!!!

keil利用官方hal固件库独立完成工程模板的创建,HAL库,stm32,嵌入式硬件,单片机

6、取消只读权限

由于官方固件包设置了只读权限,所以文件图标会出现黄色小钥匙,需要取消文件夹的只读权限

keil利用官方hal固件库独立完成工程模板的创建,HAL库,stm32,嵌入式硬件,单片机

打开文件夹中的Drivers,对CMSISSTM32F4xx_HAL_Driver文件夹右键,选择属性,取消只读选项

keil利用官方hal固件库独立完成工程模板的创建,HAL库,stm32,嵌入式硬件,单片机

完成设置后的分组

keil利用官方hal固件库独立完成工程模板的创建,HAL库,stm32,嵌入式硬件,单片机

五、魔术棒设置

1、Target选项卡

打开魔术棒,修改外部高速晶振为8MHz,编译器为AC5

keil利用官方hal固件库独立完成工程模板的创建,HAL库,stm32,嵌入式硬件,单片机

AC5和AC6编译器对比

keil利用官方hal固件库独立完成工程模板的创建,HAL库,stm32,嵌入式硬件,单片机

2、Output选项卡

点击Output,勾选创建hex文件

keil利用官方hal固件库独立完成工程模板的创建,HAL库,stm32,嵌入式硬件,单片机

点击Select Folder for Objects,修改编译输出文件的路径为Template\Output

keil利用官方hal固件库独立完成工程模板的创建,HAL库,stm32,嵌入式硬件,单片机

3、Listing选项卡

点击Listing,点击Select Folder for Listings,修改编译输出文件的路径为Template\Output

keil利用官方hal固件库独立完成工程模板的创建,HAL库,stm32,嵌入式硬件,单片机

4、C/C++选项卡

点击C/C++,设置全局宏定义为USE_HAL_DRIVER,STM32F407xx,优化等级为Level 0,勾选C99

keil利用官方hal固件库独立完成工程模板的创建,HAL库,stm32,嵌入式硬件,单片机

设置头文件包含路径如下图

keil利用官方hal固件库独立完成工程模板的创建,HAL库,stm32,嵌入式硬件,单片机

5、Debug选项卡

点击Debug,设置下载器,按照自己的下载器型号来选择

keil利用官方hal固件库独立完成工程模板的创建,HAL库,stm32,嵌入式硬件,单片机

点击Settings,选择当前下载器ATK-HSWL-CMSIS-DAP(有多少个下载器就会显示多少个),下载调试接口模式为SW,速率设置为最大值10MHz

keil利用官方hal固件库独立完成工程模板的创建,HAL库,stm32,嵌入式硬件,单片机

6、Utilities选项卡

点击Utilities,确认勾选Use Debug Driver

keil利用官方hal固件库独立完成工程模板的创建,HAL库,stm32,嵌入式硬件,单片机

点击Settings,勾选Reset and Run

keil利用官方hal固件库独立完成工程模板的创建,HAL库,stm32,嵌入式硬件,单片机

设置完成点击OK

六、添加主函数,并编写代码

1、创建main.c

User工程文件夹下右键,选择新建文件

keil利用官方hal固件库独立完成工程模板的创建,HAL库,stm32,嵌入式硬件,单片机

选择.c文件类型,命名为main,点击右下角的...将文件添加到User文件夹下

keil利用官方hal固件库独立完成工程模板的创建,HAL库,stm32,嵌入式硬件,单片机

点击分组管理,点击上移将main.c移动至第一行,点击OK保存

keil利用官方hal固件库独立完成工程模板的创建,HAL库,stm32,嵌入式硬件,单片机

2、编写main.c并进行编译

复制以下代码到main.c

#include "./SYSTEM/sys/sys.h"
#include "./SYSTEM/usart/usart.h"
#include "./SYSTEM/delay/delay.h"

void led_init(void);

int main(void)
{
    HAL_Init();                         /* 初始化HAL库 */
    sys_stm32_clock_init(336, 8, 2, 7); /* 设置时钟,168Mhz */
    delay_init(168);                    /* 延时初始化 */
    led_init();                         /* 初始化LED */
    
    while(1)
    {
        HAL_GPIO_WritePin(GPIOF,GPIO_PIN_9,GPIO_PIN_RESET);     /* LED0 亮 */
        HAL_GPIO_WritePin(GPIOF,GPIO_PIN_10,GPIO_PIN_SET);      /* LED1 灭 */
        delay_ms(500);
        HAL_GPIO_WritePin(GPIOF,GPIO_PIN_9,GPIO_PIN_SET);       /* LED0 灭 */
        HAL_GPIO_WritePin(GPIOF,GPIO_PIN_10,GPIO_PIN_RESET);    /* LED1 亮 */
        delay_ms(500);
    }
}

void led_init(void)
{
    GPIO_InitTypeDef gpio_init_struct;
    
    __HAL_RCC_GPIOF_CLK_ENABLE();                       /* LED0,LED1时钟使能 */

    gpio_init_struct.Pin = GPIO_PIN_9;                  /* LED0引脚 */
    gpio_init_struct.Mode = GPIO_MODE_OUTPUT_PP;        /* 推挽输出 */
    gpio_init_struct.Pull = GPIO_PULLUP;                /* 上拉 */
    gpio_init_struct.Speed = GPIO_SPEED_FREQ_HIGH;      /* 高速 */
    HAL_GPIO_Init(GPIOF, &gpio_init_struct);            /* 初始化LED0引脚 */

    gpio_init_struct.Pin = GPIO_PIN_10;                 /* LED1引脚 */
    HAL_GPIO_Init(GPIOF, &gpio_init_struct);            /* 初始化LED1引脚 */

    HAL_GPIO_WritePin(GPIOF, GPIO_PIN_9, GPIO_PIN_SET); /* LED0 灭 */
    HAL_GPIO_WritePin(GPIOF, GPIO_PIN_10, GPIO_PIN_SET);/* LED1 灭 */
}

点击全编译按钮

keil利用官方hal固件库独立完成工程模板的创建,HAL库,stm32,嵌入式硬件,单片机

编译完成后显示零错误零警告,工程模板创建完毕!!!

七、VScode配置【可选】

1、载入Keil工程

安装并启动扩展组件Keil Assistant

keil利用官方hal固件库独立完成工程模板的创建,HAL库,stm32,嵌入式硬件,单片机

点击添加工程,选择MDK-ARM项目工程,点击Open

keil利用官方hal固件库独立完成工程模板的创建,HAL库,stm32,嵌入式硬件,单片机

注意右下角弹出的提示(是否切换工作区),点击OK

keil利用官方hal固件库独立完成工程模板的创建,HAL库,stm32,嵌入式硬件,单片机

勾选信任工程文件,点击Yes

keil利用官方hal固件库独立完成工程模板的创建,HAL库,stm32,嵌入式硬件,单片机

2、转换编码格式

打开main.c,选择编码格式,点击通过编码重新打开

keil利用官方hal固件库独立完成工程模板的创建,HAL库,stm32,嵌入式硬件,单片机

选择GB2312

keil利用官方hal固件库独立完成工程模板的创建,HAL库,stm32,嵌入式硬件,单片机

选择编码格式,点击通过编码保存

keil利用官方hal固件库独立完成工程模板的创建,HAL库,stm32,嵌入式硬件,单片机

选择UTF-8,同理将delay、sys、usart文件和对应的头文件转换为UTF-8即可文章来源地址https://www.toymoban.com/news/detail-857373.html

到了这里,关于【1】STM32·HAL库·新建工程模板【一步到位】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • postman之接口自动化测试一步到位

    目录 概述 执行顺序 预处理脚本为请求添加动态传参 测试脚本 如何快速生成测试脚本 postman集成到Jenkins 概述 Postman是一个客户端接口测试工具,它不仅可以用在测试当中,还可以用在开发当中,在postman的使用过程中,其实大部分人都在做手工测试,name其实postman还有另外一

    2024年02月03日
    浏览(41)
  • 【一步教学,一步到位】花里胡哨的3D翻页卡片,隔壁产品都馋哭

    with(cardShadowSizeFunc!!) { inParamMin = 0F inParamMax = 180F outParamMax = 50F outParamMin = 0F initValue = 10F } cardShadowDistanceFunc = CardShadowDistanceFunc() with(cardShadowDistanceFunc!!) { inParamMin = 0F inParamMax = 180F outParamMax = 50F outParamMin = 0F initValue = 10F } } 复制代码 2.5.3 阴影变化 为了更好地模拟3D效果,卡片阴影

    2024年04月14日
    浏览(42)
  • 电商数据分析方案:丰富经验护航,分析一步到位

    如果做电商数据分析的每一步都从零开始,摸着石头过河,反复测试修改。一通忙活下来,成果没见多少,人力物力成本倒是节节攀升,试问又有多少企业承受得住?如果有一套一步到位的数据分析方案,是不是就能大大地降低风险、缩短周期,提高性价比? 奥威BI电商数据

    2024年02月11日
    浏览(50)
  • 双系统安装ubuntu 22.04 LTS(一步到位)

            作为一个拥有两次都是一次成功安装好双系统的经验的人,我觉得我可以借这个文章仔细讲述一下,让大家都可以双系统安装都是一次成功。为什么有着两次安装经验呢,第一次安装完成后由于电脑的内存不太够了,然后重新装了一个固态和机械硬盘,再次安装了

    2024年01月23日
    浏览(61)
  • 用OPENCV,C++实现直线卡尺工具原理,一步到位

    不多逼逼,直接上步骤 Step1:根据给定的卡尺数,计算直线上的间断点,并保留间断点的位置,并返回。 Step2:在间断上生成若干个矩形卡尺工具,与直线垂直: Step3:计算每个卡尺矩形的内部点位集合,存放在二维数组里,如图。从起始点进行遍历,沿着两个方向遍历。

    2024年04月17日
    浏览(41)
  • 【Spring Boot】项目端口号冲突解决方法,一步到位

    启动项目遇到以下问题: Description: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port. Process finished with exit code 1 找到要启动的项目的配置文件 application.properties ,没有的话可以在 resource

    2024年02月02日
    浏览(49)
  • MYSQL的卸载、下载、安装、配置一步到位(超详细教程)

    MYSQL的卸载、下载、安装、配置一步到位(超详细教程) 一、卸载 1.控制面板卸载 全部卸载 2.卸载数据文件 在安装的时候会有安装地址和数据库地址 找到自己安装数据库的地址,删除MySQL里面的内容 3.删除环境变量 此电脑–属性–高级系统设置–环境变量–系统变量–path(双击

    2024年02月08日
    浏览(42)
  • 一步到位!快速精通Git工作流及实战技巧详解

    Git是一个分布式版本控制系统。 1.备份 小明负责的模块就要完成了,就在即将release之前的一瞬间,电脑突然蓝屏。硬盘光荣牺牲!几个月来的努力付之东流。 场景二:代码还原 这个项目中需要一个很复杂的功能,老王摸索了一个星期终于有眉目了,可是这被改得面目全非的

    2024年03月15日
    浏览(66)
  • ICRA 2023 | 最新激光雷达-相机联合内外参标定,一步到位!

    点击下方 卡片 ,关注“ 自动驾驶之心 ”公众号 ADAS巨卷干货,即可获取 今天自动驾驶之心很荣幸邀请到石头,为大家分享ICRA 2023最新的激光雷达-相机的联合标定方法,可同时标定内参和外参。如果您有相关工作需要分享,请在文末联系我们! 点击进入→ 自动驾驶之心【多

    2024年02月12日
    浏览(39)
  • 一步到位——Node版本管理神器nvm安装教程(2023最新)

    Node的安装是许多学习前端的小伙伴的必经之路,我们可能会遇到需要切换node版本的情况,卸载node再安装另一个显然不够优雅,因此nvm的出现极大提高我们切换node的效率。 然而,在nvm的安装过程中有很多坑,许多新手非常容易踩雷,那么接下来让我带领你们, 一次到位安装

    2024年02月04日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包