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

相关推荐
炸膛坦客9 小时前
单片机开发工具篇:(十四)配置输出 .map 文件及其本地路径
c语言·单片机·嵌入式硬件
笨笨饿10 小时前
140_AI新手村MCP与Skills是干嘛的
开发语言·人工智能·python·stm32·单片机·嵌入式硬件·物联网
hahaha601611 小时前
色彩恒常性概述
人工智能·嵌入式硬件·数码相机·计算机视觉
我叫洋洋12 小时前
Cadence CIS 元器件库合并实战:3000+ 焊盘、156 个符号零冲突并入自有库
数据库·单片机·嵌入式硬件·oracle·电路
hahaha601613 小时前
Shades-of-Gray (SoG) 算法--白平衡算法
人工智能·嵌入式硬件·算法·计算机视觉
ebiobiz13 小时前
极海 APM32 使用 Nimmake 编译指南
c++·python·单片机·嵌入式硬件·mcu
小神兵14 小时前
对电压源与电流源的的简单理解
单片机·嵌入式硬件·物联网
comyccccc15 小时前
三极管与MOS管工作原理全解析学习笔记
单片机·嵌入式硬件
FPGA小徐16 小时前
运放电路:负载必须接地时,如何做电流采样(浮地负载 vs 接地负载)
单片机·嵌入式硬件
木白CPP16 小时前
USB(一): USB 概述&&介绍
linux·网络·嵌入式硬件