首页
Python
Java
前端
数据库
Linux
Chatgpt专题
开发者工具箱
hal专题
STM32CubeMX和HAL库-新建项目
目录 新建项目 选择开发板 MCU图形化配置界面总览 MCU配置 新建项目 新建项目包含选择MCU创建项目、选择开发板新建项目和交叉选择MCU新建项目三部分。 1. 选择MCU创建项目 单击主菜单项File→New Project,或Home视图上的ACCESS TO MCU SELECTOR 按钮,都可以打开的New Project from a MCU/MPU对话框。
阅读更多...
STM32 HAL CAN通讯 实操
1、简介 相比于串口通讯,对于刚接触CAN通讯的小白来说,CAN通讯相对复杂,看各种视频、帖子理论,总是一知半解。本次通过傻瓜式操作,先实现CAN通讯的交互,以提高小白的信心,也便于自己复习观看。本次以STM32CubeMX进行初始化配置,通过Keil 5软件进行软件设计,通过CAN盒实现进行数据的交互。该流程实际以STM32F0、F1、F3、F4、F7实测好用(理论上都适用),这三种型号单片机
阅读更多...
我在高职教STM32——准备HAL库工程模板(1)
新学期开学在即,又要给学生上 STM32 嵌入式课程了。这课上了多年了,一直用的都是标准库来开发,已经驾轻就熟了。人就是这样,有了自己熟悉的舒适圈,就很难做出改变,老师上课也是如此,排斥新课和不熟悉的内容。显然,STM32 的开发,HAL 库已是主流,自己其实也在使用,只不过更换库就意味着教学内容有很大变化,自己也就迟迟没有迈出调整这一步。现在,是时候做出变化了,笔者计划保持教学项
阅读更多...
STM32单片机HAL库——ADC输入
一、单通道采集 二、单通道+DMA采集 使能DMA 三、定时器采集+DMA传输 选择定时器1的通道1作为触发源,在TIM1的上升沿进行采集 定时器1挂载在APB2上面,APB2上定时器的频率为168MHZ psc=168-1 arr=1000-1 TIM1的时钟频率为168/168/1000=1kHZ pulse设置为500,占空比为50%
阅读更多...
基于STM32的RTOS--freertos的使用(HAL实现多任务)
一:STM32cubemx配置 1:工程建立 (1)打开stm32cubemx 点击进入芯片选择页面 (2)选择对应的芯片型号双击 2:调试接口配置 3:时钟设置
阅读更多...
tiny4412 ov5640 driver and hal
初步完成在 tiny412 上 ov5640的driver and hal 的 porting 源码: https://github.com/gxx9203/tiny4412_ov5640_hal
阅读更多...
STM32F1 HAL库笔记0
参考UM1850 Description of STM32F1 HAL and low-layer drivers 1、STM32Cube 包括: • STM32CubeMX,图形软件配置工具,使用图形向导生成 C 初始化代码。 • 嵌入式软件平台,按系列提供(例如用于STM32F1的STM32CubeF1),包括: ——STM32Cube
阅读更多...
STM32的窗口看门狗详解及案例(基于HAL库)
目录 一、引言 二、窗口看门狗的工作原理 1.基本概念 2.功能描述 3.窗口值和计数器初始值 三、STM32F429 HAL 库中窗口看门狗的配置步骤 1.开启时钟 2.初始化窗口看门狗 3.开启早期唤醒中断 4.喂狗操作 四、窗口看门狗的应用场景 1.防止软件死锁 2.检测外部干扰 3.提高系统可靠性 五、注意事项 1.时间窗口的设置 2.喂狗操作的
阅读更多...
【STM32+HAL库】---- 硬件IIC驱动0.96OLED
硬件开发板:STM32G0B1RET6软件平台:cubemax+keil+VScode 内容原著声明 代码借鉴学习于以下文章: STM32 使用硬件IIC驱动0.96寸4针IOLED显示器(HAL库) 1 新建cubemax工程 1.1 配置系统时钟RCC 1.2 配置引脚 1.3 导出工程 略… 2 代码 2.1 OLED_IIC_Config.h /*** **
阅读更多...
W25Q32驱动 基于HAL库的SPI
环境 芯片:STM32F103ZET6 库:来自HAL的STM32F1XX.H 原理图 cubeMX配置 W25Q32.h //// Created by seven on 2024/9/2.//#ifndef SPI_W25Q32_H#define SPI_W25Q32_H#include "spi.h"/*** 初始化W25Q32闪存芯片*/void W25Q32
阅读更多...
STM32-HAL库串口DMA空闲中断的正确使用方式及SBUS信号解析
概述 STM32微控制器广泛用于嵌入式系统,其HAL(Hardware Abstraction Layer)库简化了硬件访问,提高了开发效率。在STM32中,使用DMA(Direct Memory Access)进行串口通信可以显著提高数据传输效率,减少CPU负载。本文将介绍如何在STM32中正确使用串口DMA空闲中断,并解析SBUS信号。 串口DMA空闲中断 在STM32中,串口DMA传输
阅读更多...
STM32CubeMX生成freertos默认设置卡死,卡在HAL_Init不动,裸机运行程序正常跑,解决方法
1、简介 最近通过STM32CubeMX生成freertos发现任务不执行,卡在HAL_Init不动,网上找很久不好使,刚开始怀疑硬件问题,但是裸机运行程序正常跑,然后怀疑软件有问题,但是对F1,F3系列都好使,仅仅对F4系列不行,然后通过对F4固件包升级得以解决。 2、解决办法 找到F4,点击Refresh刷新,然后安装。
阅读更多...
STM32F1+HAL库+FreeTOTS学习7——列表和列表项
STM32F1+HAL库+FreeTOTS学习7——列表和列表项 列表和列表项简介列表列表项迷你列表项 列表项API函数介绍1. 初始化列表2. 初始化列表项3. 列表末尾插入列表项4. 列表插入列表项5. 移除列表项6. 补充:FreeRTOS中操作列表和列表项的宏 列表项的插入和删除实验总结 上一期我们学习了FreeRTOS的内核中断管理以及中断屏蔽控制函数,下面我们来学习临
阅读更多...
RT-Thread Studio中HAL库开发教程:UART的DMA应用
RT-Thread Studio是一个集成开发环境,它提供了丰富的工具和库来简化嵌入式开发。在RT-Thread Studio中使用HAL库开发UART通信时,可以利用DMA(直接内存访问)来提高数据传输的效率。本文将详细介绍如何在RT-Thread Studio中配置和使用UART的DMA功能。 1. 准备工作 1.1 环境搭建 确保你已经安装了RT-Thread Studio,并且已经创
阅读更多...
HAL/JNI简明笔记(一)——HAL基本框架
原文博客地址:http://blog.csdn.net/sgmenghuo/article/details/44563765 环境: android 4.3 HAL(hardware abstract layer)是位于操作系统与硬件之间的接口层,目的在于硬件抽象化。它存在于linux的应用层,它在Android系统中的位置是:向下连接驱动,向上给JNI提供接口。
阅读更多...
《嵌入式-STM32开发指南》第二部分 基础篇 - 第7章DMA(HAL库)
标准库3.5实现: 《嵌入式-STM32开发指南》第二部分 基础篇 - 第7章 DMA 7.1 DMA工作原理 7.1.1 DMA介绍 DMA (Direct Memory Access,直接存储器存取),是一种可以大大减轻 CPU 工作量的数据存取方式,DMA传输将数据从一个地址空间复制到另一个地址空间,提供在外设和存储器之间或者存储器和存储器之间的高速数据传输,因而被广泛地使用。早在 8
阅读更多...
《嵌入式-STM32开发指南》第二部分 基础篇 - 第6章串口通信(HAL库)
标准库3.5实现: 《嵌入式-STM32开发指南》第二部分 基础篇 - 第6章串口通信 6.1串口简介 通用同步异步收发器(USART)提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换。USART利用分数波特率发生器提供宽范围的波特率选择。它支持同步单向通信和半双工单线通信,也支持LIN(局部互连网),智能卡协议和IrDA(红外数据组织)SIR ENDE
阅读更多...
《嵌入式-STM32开发指南》第二部分 基础篇 - 第5章 PWM(HAL库)
标准库3.5实现: 《嵌入式-STM32开发指南》第二部分 基础篇 - 第5章 PWM 5.1 PWM_输出 5.1.1 PWM输出的工作原理 脉冲宽度调制(PWM),是英文“ Pulse Width Modulation” 的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。 简单一点,就是对脉冲宽度的控制。 STM32 的定时器除了 TIM6 和 7
阅读更多...
《嵌入式-STM32开发指南》第二部分 基础篇 - 第4章 定时器(HAL库)
标准库3.5实现: 《嵌入式-STM32开发指南》第二部分 基础篇 - 第4章 定时器 4.1定时器的工作原理 STM32有三类定时器,基本定时器就是单纯的定时计数器,通用定时器多了四个通道,相对应的增加了功能,高级定时器具有基本,通用定时器的所有的功能,并且添加了其他功能。定时器的对比特性如下表所示。 表1各个定时器特征 4.1.1基本定时器 TIM6和TIM7定时器的主要功能
阅读更多...
《嵌入式-STM32开发指南》第二部分 基础篇 - 第3章 按键(HAL库)
标准库3.5实现: 《嵌入式-STM32开发指南》第二部分 基础篇 - 第3章 按键 3.1普通方式 3.1.1 普通方式工作原理 按键 GPIO 端口有两个方案可以选择,一是采用上拉输入模式,因为按键在没按下的时候,是默认为高电平的,采且内部上拉模式正好符合这个要求。第二个方案是直接采用浮空输入模式,因为按照硬件电路图,在芯片外部接了上拉电阻,其实就没必要再配置成内部上拉输入模式了,因为在
阅读更多...
《嵌入式-STM32开发指南》第二部分 基础篇 - 第2章 Systick系统定时器(HAL库)
关于STM32 的时钟系统,Systick系统定时器工作原理分析以及Systick系统定时器寄存器分析请看笔者的上一篇博文。 第2章 Systick系统定时器 2.1 STM32Cube新建工程 关于如何使用使用STM32Cube新建工程在前文已经讲解过了,这里直说配置GPIO部分内容。本文要实现流水灯,其实输出为初始化设置为高电平还是低电平都可以,因为流水灯需要不断反转 第1章 GPIO
阅读更多...
《嵌入式-STM32开发指南》第二部分 基础篇 - 第17章 SPI(HAL库)
17.1 SPI简介 SPI,是Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。是一种高速全双工的通信总线,它由摩托罗拉公司提出,当前最新的为 V04.01—2004 版。它被广泛地使用在ADC、LCD 等设备与 MCU 间通信的场合。SPI接口主要应用在 EEPROM,FLASH,实时时钟
阅读更多...
《嵌入式-STM32开发指南》第二部分 基础篇 - 第16章 I2C(HAL库)
16.1 I2C工作原理 16.1.1 I2C串行总线概述 I2C总线是PHLIPS公司推出的一种双线式串行总线,是具备多主机系统所需的总线裁决和高低速器件同步功能的高性能串行总线。用于连接微悾器及外围设备。I2C总线只有两根双向信号线。一根是数据线SDA,另一根是时钟线SCL。 物理层 1)它只使用两条总线线路 :一条双向串行数据线(SDA) ,一条串行时钟线 (SCL)。见图 1。
阅读更多...
《嵌入式-STM32开发指南》第二部分 基础篇 - 第15章 程序加密(HAL库)
15.1程序加密工作原理 STM32通过读取芯片唯一ID号来实现程序的保护,防止被抄袭。96位的产品唯一身份标识所提供的参考号码对任意一个STM32微控制器,在任何情况下都是唯一的。用户在何种情况下,都不能修改这个身份标识。按照用户不同的用法,可以以字节(8位)为单位读取,也可以以半字(16位)或者全字(32位)读取。在这里要提醒读者,要注意大端小端模式。 关于大小端请看笔者博文: 深入剖析
阅读更多...
《嵌入式-STM32开发指南》第二部分 基础篇 - 第14章 STM32的存储结构(HAL库)
14.1 STM32存储结构的工作原理 14.1.1 STM32内核(Cortex-M3)的存储器映射 存储器映射是指把芯片中或芯片外的FLASH,RAM,外设,BOOTBLOCK等进行统一编址。即用地址来表示对象。这个地址绝大多数是由厂家规定好的,用户只能用而不能改。用户只能在挂外部RAM或FLASH的情况下可进行自定义。 如下图,是Cortex-M3存储器映射结构图。 图1Corte
阅读更多...
STM32 HAL库学习笔记:UART/USART串口通信详解
在嵌入式开发中,串口通信是实现设备间数据交换的重要方式之一。STM32微控制器提供了多个UART/USART接口,通过HAL库可以方便地进行串口通信的配置和使用。本文将详细介绍如何使用STM32的HAL库来实现UART/USART串口通信。 1. UART/USART简介 UART(通用异步接收/发送器)和USART(通用同步/异步接收/发送器)是串行通信接口,它们允许设备通过串行方式发送和接
阅读更多...