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工具进行嵌入式系统开发,为日后的项目开发打下良好的基础。

相关推荐
Rousson39 分钟前
硬件学习笔记--82 连接器的选用原则与流程
笔记·单片机·学习
三佛科技-1341638421241 分钟前
高速风筒方案开发 高速风筒MCU控制方案设计
单片机·嵌入式硬件·智能家居·pcb工艺
清风6666666 小时前
基于单片机的螺旋藻生长大棚PH智能控制设计
单片机·嵌入式硬件·毕业设计·课程设计
ting_zh7 小时前
微控制器(Micro Controller Unit, MCU)基础整理
单片机·嵌入式硬件
清风6666668 小时前
基于单片机的图书馆智能座位管理平台
数据库·单片机·嵌入式硬件·毕业设计·课程设计
得单片机的运9 小时前
STM32的以太网的搭建
stm32·单片机·嵌入式硬件·物联网·以太网·iot·w5500
酷飞飞10 小时前
RTC和看门狗基于GD32F407VE的天空星的配置
stm32·单片机·嵌入式硬件·mcu
WD1372980155711 小时前
WD5030A,24V降5V,15A 大电流,应用于手机、平板、笔记本充电器
stm32·单片机·嵌入式硬件·智能手机·汽车·电脑·51单片机
日更嵌入式的打工仔11 小时前
GPIO 中断通用配置指南
stm32·单片机·嵌入式硬件
平凡灵感码头12 小时前
基于 STM32 的智能门锁系统,系统界面设计
stm32·单片机·嵌入式硬件