相关文章

STM32从固件库到HAL库

让坚持成为一种热爱,极致成为一种精神。历时10个月,目前我又重新回到了程序员的身份,2023想玩不一样的嵌入式。🚀 目录 前言一、安装STM32CubeMX二、配置自己的HAL库MDK工程三、HAL库与固件库的区别1.句柄2.回调函数3.时钟配置4.H…

从代码层面分析STM32 标准库和HAL库的差异

如果用过STM32系列单片机的朋友会比较清楚,一般在开发STM32单片机程序的时候首先要考虑选用那种方式来写代码。常见的有三种方式,寄存器版、标准库版、HAL库版。现在选用后两种的比较多,选择寄存器开发的可能比较少了。而后两种方式到底选用那…

使用HAL库开发STM32:ADC基础使用

文章目录 目的基础说明基础使用配置选项说明轮询 单通道 单次轮询 单通道 连续轮询 多通道 扫描中断 单通道中断 多通道 扫描DMA 单通道 单次DMA 单通道 连续DMA 多通道 连续 自校准总结 目的 ADC(模拟数字转换器)是现在单片机上基本都有的外设&#xf…

HAL库教程10:定时器的PWM模式应用

本节通过定时器的PWM模式驱动无源蜂鸣器,来演奏一段音乐。本博客在掌机的系列教程中介绍过蜂鸣器的驱动原理,感兴趣的可以参考电子琴 无源蜂鸣器驱动电路 蜂鸣器按照有无震荡源(不是电源),可以分为有源蜂鸣器和无源蜂…

HAL库教程1:STM32Cube的介绍

使用STM32HAL库已经有了一段时间,觉得相比于标准库,好用了不少。加上STM32CubeMX图形化配置工具的加持,个人认为可以极大提升开发效率。其实关于HAL库的教程已经很多了,关于STM32CubeMX的使用教程也很多,我并不比这些写…

【STM32】HAL库——定时器溢出中断

经过多次调试,我发现Proteus 8的仿真效果并不是很理想,所以接下来的例程将改用STM32F103RCT6单片机实物进行讲解. 前期准备: STM32CubeMXSTM32RCT6核心板IDE Keil(MDK-ARM) STM32CubeMX部分 1. 配置时钟 选择STM32…

HAL库教程14:查表法测量NTC热敏电阻

STM32F4的AD采样的结果是12位的,即采样的最大值为4096。而参考电压是3.3V,所以3.3V与4096是对应的。当然3.3V只是理想状态,实际上可能略有偏差。假设单片机的AD采集引脚电压为x,实际单片机的参考电压为z伏,读取到的AD值…

STM32CubeMX | STM32使用HAL库实现定时器PWM输出

STM32CubeMX | STM32使用HAL库实现定时器PWM输出 环境: 1、STM32CubeMX 5.3 2、Atollic TrueSTUDIO for STM32 9.3.0 3、战舰迷你板(stm32f103rb) 本章效果为LED灯由PWM控制,由暗到亮,再由亮到暗,反复循环…

【STM32】HAL库 ——DAC

前期准备: STM32CubeMXSTM32RCT6核心板IDE Keil(MDK-ARM) STM32CubeMX部分 1. 配置时钟 选择STM32F103RCTx系列芯片,配置时钟的同时会自动配置IO口引脚 将HCLK设置为最大频率72MHz 2. 配置DAC 什么是DAC? 数模…

HAL库教程12:ADC与DMA采集多路AD值

AD的基础知识 AD很复杂,其实也不复杂,因为我们用的不多。   AD:模拟量转换数字量(模拟信号转换数字信号)。   ADC:模拟量转数字量的转换器。   为什么需要AD呢?   自然界宏观的物理量都…

STM32HAL库使用SPI驱动1.44寸TFTLCD

关于STM32F4单片机,使用HAL库自带的SPI,驱动TFTLCD屏幕的资料网上好像不太多,正好最近我做了这项工作,把成果分享给大家。我的代码实现了这些功能:任意坐标画点,指定首尾坐标画线,画方框&#x…

HAL库教程6:串口数据接收

STM32的串口接收机制 与阻塞式发送函数HAL_UART_Transmit配套,有个阻塞式的接收函数,HAL_UART_Receive,但此函数不常用,串口接收通常使用中断函数HAL_UART_Receive_IT。HAL库的串口中断比较复杂,主要流程如下&#xff…

STM32CubeMX | STM32F1系列HAL库读写内部FLASH

STM32F1系列HAL库读写内部FLASH 测试环境: STM32F103RB20KBytes RAM128KBytes FLASH 注:本章节代码只适合STM32F1系列! 头文件 /*** brief Create by AnKun on 2019/10/10*/#ifndef __FLASH_H #define __FLASH_H#include "main.h"…

HAL库教程8:通用定时器的使用

定时器溢出时间的计算 关于定时器溢出的时间计算,有个公式:   定时器本质上是一个不断自加的计数器,只不过在自加的时候,能够自动比较计数值跟某个设定值而已。定时器1用时多少?   1/84000000,单位是秒…

HAL 固件库

学习自记: 小结先: core_cm3.h屏蔽编译器差异、定义变量类型、内核寄存器地址定义-——>不同芯片厂商、不同软件都用arm公司定义的内核文件,此文件为通用文件汇编语言启动文件startup_stm32f103xx.s-——>针对芯片的专有文件系统初始…

【STM32】HAL库——定时器PWM输出

前期准备: STM32CubeMXSTM32RCT6核心板IDE Keil(MDK-ARM) STM32CubeMX部分 1. 配置时钟 选择STM32F103RCTx系列芯片,配置时钟的同时会自动配置IO口引脚 将HCLK设置为最大频率72MHz 2.配置PWM 脉冲宽度调试(PWM…

HAL库教程3:引脚输入检测

使用CubeMX配置输入引脚 本章我们要把按键作为输入源,使用单片机来检测引脚的电平状态。首先要查看原理图,按键与那些引脚相连。   我使用的板子,按键K2 -K5分别对应PA4-PA7,且按键按下去以后,引脚接地。因此&#…

【STM32】HAL库——ADC

前期准备: STM32CubeMXSTM32RCT6核心板IDE Keil(MDK-ARM) STM32CubeMX部分 1. 配置时钟 选择STM32F103RCTx系列芯片,配置时钟的同时会自动配置IO口引脚 将HCLK设置为最大频率72MHz 2. 配置ADC 什么是ADC? AD…

STM32HAL库使用详解

1. 文档和库规范本 用户手册和固态函数库按照以下章节所描述的规范编写。 1.1缩写 Table1 本文档所有缩写定义 缩写外设/单元ADC模数转换器BKP备份寄存器CAN控制器局域网模块DMA直接内存存取控制器EXTI外部中断事件控制器FLASH闪存存储器GPIO通用输入输出I2C内部集成电路IW…

Stm32学习(基于HAL库)

目录 MDK软件的使用 MDK编译结果里面的几个数据的意义: MDK头文件包含 警告解决 CUBEMX使用注意事项 Debug问题 可分离模块文件生成配置问题 HAL库的理解 重要的文件: HAL库特点 时钟系统 时钟树 时钟使能 时钟禁用 端口复用和重映射 MCO…