清泉HAL库开发STM32之基础概念


前言

这是我自己断断续续学习STM32以来准备以实战化的形式做一些教程和自己的学习总结,将以标准库和HAL两种库进行开发。


一、STM32标准库和HAL库分别是什么?

首先我们需要了解一下常见的名词有一个大概的印象
固件:为了支持不同硬件功能的底层驱动,目的为了节省内存。因为单片机内存有限且会影响速度,所以不同功能定制了不同的固件,而32的库函数就能简单理解为许多的固件包。

以上所说的固件包是指“STM32 标准函数库”,它是由 ST 公司针对 STM32 提供的函数接口,即 API,开发者可调用这些函数接口来配置 STM32的寄存器,使开发人员得以脱离最底层的寄存器操作,有开发快速,易于阅读,维护成本低等优点。

HAL库是为了配和CUNEMX软件ST公司专门配置的库集合,使用cubemx软件可以直接选择引脚功能以后自动配置底层驱动(也就是固件包选择有用的使用)软件的安装网上有资料可以自行下载安装

二、HAL库开发

cubemx新建工程

1.选择 CPU 型号

这个根据你开发板使用的 CPU 具体的型号来选择, 我的开发板芯片选 STM32F103ZET 型号。我们直接在搜索STM32F103ZET 最终确认 STM32F103ZETx 为我们实际使用型号.

2.确认时钟源

进入工程后打开 RCC 选项,选择 Crystal/Ceramic Resonator,即使用外部晶振作为HSE 的时钟源。

3. 配置 IO 口

这个工程简单控制一个 LED 周期闪烁,我们只需要配置一个 IO 即可,这里选定控制红色 LED 的引脚 PB5,通过搜索框搜索可以定位 IO 口的引脚位置,图中会闪烁显示,配置 PB5 的属性为 GPIO_Output。

4. 配置系统时钟

开发板的外部晶振为 8MHz,我们填入 8;通道选择 LSE;PLLM 选择为/1;倍频系数N 选择为 x9;系统时钟选择 PLLCLK;系统时钟设定为 72Mz;APB1 分频系数选择为/2 即PCLK1 位 36MHz;APB2 分频系数选择为/1 即 PCLK2 位 72MHz。

5. 进一步配置 IO 的具体属性

点击 Configuration,进入系统详细配置,选着 GPIO,配置PH10 的默认电平,开漏输出,无上下拉,低速模式。引脚标签为 LED_R。

6. 配置工程属性

为了防止cubemx的文件产生在main中,在配置文件中Code Generaor 勾上Generate peripheral initialization as a pair of ‘.c/.h’ files per peripheral
将外围设备初始化为每台外设一对“.c/.h”文件

为了防止出现,烧录以后仿真器无法连接的情况,我们在 Pinout 里将 SYS 里面的Debug 设置成 Serial Wire,这样问题得到解决。

7.生成代码

点击 GENERATE CODE,在设定的路径成功生成代码,选着打开工程。

8. 添加用户测试代码

打开工程后在 main 函数中的主循环插入用户代码,目的是让红色 LED 周期闪烁。

9. 配置下载调试工具

配置下载工具为 CMSIS-DAP,程序下载完后复位并运行。

代码如下(示例):

 while (1)
  {
  HAL_Delay(500);
   HAL_GPIO_WritePin(GPIOB,GPIO_PIN_5,GPIO_PIN_RESET);
  HAL_Delay(500);
  HAL_GPIO_WritePin(GPIOB,GPIO_PIN_5,GPIO_PIN_SET);
  }

三.下载HAL库的官方固件包对应操作函数进行编程

如果觉得麻烦可以直接下载我上传的内容link.


总结

1.固件是什么,为什么要使用固件?
2.寄存器是什么?
3.标准库是什么?
4.HAL库是什么?
5.HAL库与标准库的区别在哪里?
6.cubemx配置第一个工程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值