HAL库开发--第一盏灯

知不足而奋进 望远山而前行


目录

文章目录

前言

学习目标

学习内容

需求

开发流程

项目创建

芯片配置

功能配置

时钟配置

项目配置

编写代码

编译测试

烧录失败解决

​编辑

总结


前言

在嵌入式系统开发中,掌握HAL库开发流程、STMCubeMX配置过程以及API的查询和使用方式是非常重要的学习目标。HAL库(Hardware Abstraction Layer)提供了对底层硬件的抽象,使开发者能够更加便捷地访问和控制微控制器的功能。而STMCubeMX作为一款优秀的配置工具,可以帮助开发者快速进行芯片配置和初始化代码生成,加速开发过程。同时,熟练地查询和使用API则能够帮助开发者更加灵活地编写代码,实现各种功能需求。本文将详细介绍点灯LED1项目的开发流程,从项目创建到代码编写再到测试调试,帮助读者达成学习目标。


学习目标

  1. 掌握hal库开发流程
  2. 掌握STMCubeMX配置过程
  3. 掌握API查询和使用方式

学习内容

需求

点灯LED1

开发流程

  1. 新建项目
  2. 芯片配置
  3. 编写代码
  4. 测试调试

项目创建

  1. 新建项目
  1. 选择芯片: 输入自己使用的芯片, 开始工程配置。

芯片配置

功能配置

这里需求是点灯,配置相对简单。

  1. 来到引脚配置页面。
  1. 找到具体的引脚。以点灯的PB2为例,左键单击
  1. 配置功能。单击引脚。
时钟配置

添加高速外部时钟

切换到Clock Configuration, 配置外部晶振为8M及芯片主频168

项目配置
  1. 项目基本配置

在Project Manager的Project选项卡里配置如下内容:

  • 工程名称Project Name -> 填写一个不包含中文和空格的目录名
  • 工程路径Project Location -> 选择一个不包含中文和空格的文件路径
  • 工具链/IDE -> 选择MDK-ARM
  1. 代码生成配置
  1. 生成代码
  1. 生成完成后。

点击打开项目。会用keil打开。

如果你上一步环境搭建没有完成,这里会出现次状况:需要下载依赖。建议回到上一步,进行离线的开发包安装(除非你访问国外的网络非常快,可以直接在这里下载)

编写代码

自动生成代码结构如下:

我们对main.c进行编辑:

复制代码
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
    HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_2);
    HAL_Delay(1000);
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */

插入gpio控制代码

编译测试

和SPL库一样,进行编译,烧录,看效果。

烧录失败解决

如果烧录时,弹出如下提示,并且无法烧录:

按照如下路径进行添加Flash Programming Algorithm即可解决:

Flash Download里添加Programming Algorithm

添加后效果如下:


总结

通过本文的学习内容,读者可以学习到HAL库开发流程、STMCubeMX的配置方法以及如何查询和使用API。通过新建项目、选择芯片、配置引脚功能和时钟,完成项目配置和代码生成等步骤,读者可以掌握如何进行点灯LED1项目的开发。在编写代码部分,读者可以学习到如何使用HAL库提供的函数控制GPIO,实现LED的闪烁效果。最后,在编译测试部分,读者可以通过编译、烧录和观察效果来验证代码的正确性。同时,在解决烧录失败的情况下,读者也可以学习到如何添加Flash Programming Algorithm来解决问题。通过这些学习内容,读者将能够更加熟练地应用HAL库和STMCubeMX工具进行嵌入式系统开发,为日后的项目开发打下良好的基础。

相关推荐
全球通史19 分钟前
Keil 配置 MSPM0G3507 开发环境避坑:SysConfig、msp.h 和 driverlib.a 报错完整解决记录
stm32·单片机·嵌入式硬件
secondyoung2 小时前
Cortex-R52学习:MPU内存保护机制
arm开发·单片机·学习·arm·mpu
iCxhust3 小时前
C# 命令行指令 查看二进制文件
开发语言·单片机·嵌入式硬件·c#·proteus·微机原理·8088单板机
芯岭技术郦7 小时前
集成 2.4G 射频收发器、MCU 及丰富外设的XL2417D透传模组
单片机·嵌入式硬件
进击的小头7 小时前
第7篇:MOS 管最全入门:原理、关键参数、选型、驱动与典型应用
经验分享·科技·嵌入式硬件·学习
zlinear数据采集卡8 小时前
定时器电路深度解析:从经典555到STM32定时器,从ZLinear采集卡的工程化设计实战
stm32·单片机·嵌入式硬件·fpga开发·自动化
y.Ghost8 小时前
FreeRTOS-基础知识
嵌入式硬件
m0_377108148 小时前
stm32-USART
stm32·单片机·嵌入式硬件
szxinmai主板定制专家9 小时前
基于 ARM+FPGA精密多轴实时运动控制卡设计方案,适用于半导体设备等高精度领域(一)
arm开发·人工智能·嵌入式硬件·fpga开发·架构·语音识别
不做无法实现的梦~11 小时前
常见工程分析软件
stm32·嵌入式硬件·算法