HAL
  • 2025-01-06如何从一个已有的hal库建立的工程里查看其固件库版本
    如何从一个已有的hal库建立的工程里查看其固件库版本_stm32hal库怎么看版本号-CSDN博客为了解决hal库更新过快以及适应老版本开发,在面对不同的hal库时,我们要学会查看该工程程的固件库是多少?第一步打开HAL的Src文件夹,找到stm32f4xx_hal.c,并打开  可看见此版本号为:V1.7.4
  • 2025-01-05STM32-笔记36-ADC(模拟/数字转换器)
    一、什么是ADC?        全称:Analog-to-DigitalConverter,指模拟/数字转换器。        ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁。12位ADC是一种逐次逼近型模拟数字转换器(0~4095(2^12))。它有多达18个
  • 2025-01-02在FreeRTOS中使用HAL_UART_Transmit函数时
    voidSeria2_Printf(char*format,...){ charString[200]; va_listarg; va_start(arg,format); vsprintf(String,format,arg); va_end(arg); HAL_UART_Transmit(&huart2,(uint8_t*)&String,strlen(String),HAL_MAX_DELAY);}在FreeRTOS中使用HAL_UART_Tra
  • 2025-01-02RoboMaster电控 STM32开发环境搭建
     STM32介绍 开发方式介绍 CPU工作频率可以达到168MHz,基本可以满足比赛中所有的控制需求。stm32的主流开发方式包括寄存器开发,标准库开发,HAL库(LL库)开发。寄存器开发即直接控制32的寄存器,工程运行效率高,但是开发难度大,可读性与可移植性差;标准库开发即使用ST官方开源的一
  • 2024-12-31串口DMA配置错误笔记 —— 已解决
    一、DMA发送        1、配置问题        2、发送问题二、DMA接收        1、配置问题        2、接收问题一、DMA发送1、配置问题    使用DMA发送时需要将DMA配置成内存到寄存器搬运,关闭寄存器的地址增长,如果要搬运的多个字
  • 2024-12-30pwm输出和输出比较
    stm32cubemx配置f103zet6定时器中断,pwm波输出模式,输出捕获模式慢慢更新-百叶集-博客园 stm32cubemx配置f103zet6定时器中断,pwm波输出模式,输出捕获模式慢慢更新 定时器详细介绍(基于标准库的,原理部分可参考): STM32-定时器详解_KevinFlyn的博客-CSDN博客_stm32
  • 2024-12-28STM32单片机芯片与内部49 CAN双机通讯 标准库 HAL库
    目录一、CAN通讯——标准库1、CAN_InitTypeDef2、CAN_FilterInitTypeDef3、GPIO4、NVIC5、CAN接收6、CAN发送7、中断服务函数8、CAN_DEBUG_ARRAY二、CAN通讯——HAL库1、CAN_HandleTypeDef2、CAN_FilterConfTypeDef3、GPIO4、NVIC5、CAN接收6、CAN发送7、中断
  • 2024-12-27HAL库教程:串口+定时器接收不定长数据适用Modbus
    串口接收到的两组数据之间,通常会有一定的时间间隔。我们可以通过判断这个间隔来实现无结束符和无固定长度的串口数据接收功能。当串口在设定的时间内没有接收到新的数据时,认为一组数据已经接收完毕。在一些通信协议中,可能会指定数据之间的间隔时间。例如,Modbus协议要求两组数
  • 2024-12-26Hal库串口中断接收
    当RXbuff的大小为1024字节,并且使用HAL_UART_Receive_IT进行中断接收时,STM32HAL库会根据配置在接收到一半数据(512字节)和全部数据(1024字节)时调用相应的回调函数。具体来说,以下是如何工作的:工作原理启动接收:调用 HAL_UART_Receive_IT(&huartx,RXbuff,sizeof(RXbuff))
  • 2024-12-25USART 流控制参数:原理、配置与应用(建议收藏备用!!!)
    引言在嵌入式系统开发中,USART(通用同步异步收发传输器)作为一种常用的串行通信接口,能实现设备间稳定的数据传输。而流控制是确保数据传输可靠性的关键机制,它能有效避免数据丢失,保证通信的准确性。本文将深入探讨基于STM32的USART流控制参数的使用,涵盖硬件流控制和软件流控
  • 2024-12-24【总结(三)】单片机重点知识总结记录(串口重定向+按键消抖+延时)
    一.串口重定向串口重定向代码如下注意:要添加头文件include"stdio.h"要勾选微库,即UseMicroLIB/**********重定向************///串口1intfputc(intch,FILE*f){HAL_UART_Transmit(&huart1,(uint8_t*)&ch,1,0xffff);returnch;}intfgetc(FILE*f){
  • 2024-12-24usart+dma+idel 大量数据传输
    当串口需要接收到大量的数据,我们可以采用usart+dma+idel中断的方式来处理数据因为要使用串口中断需要先在串口初始化中使能中断/*USERCODEBEGINUSART1_Init2*/__HAL_UART_ENABLE_IT(&huart1,UART_IT_IDLE);/*USERCODEENDUSART1_Init2*/定义接收缓冲区/
  • 2024-12-22蓝桥杯——嵌入式学习笔记
    备战2025蓝桥杯嵌入式,记录一下过程。不定期更新,欢迎提出问题和指导。一、cubemx配置    1.芯片选择        嵌入式主板用的是STM32G431RBT系列,因此选择以下芯片    2.Pinout&Configuration        这里调整System
  • 2024-12-20嵌入式开发:STM32 硬件 CRC 使用
    STM32微控制器内置了硬件CRC计算单元,可以用于计算多种CRC多项式,从而提高数据处理的效率和准确性。以下是STM32硬件CRC的详细使用步骤和代码示例。1.硬件CRC的优势硬件CRC不占用MCU的资源,计算速度快,适合于对实时性要求较高的场合。它通过直接对数据进行处理,减少了软件CRC
  • 2024-12-19【外设篇】STMG4芯片-Hal库-I2C通信AS5600编码器(基础工程)
    引言:AS5600为绝对值编码器,其接口有I2C和ADC两种,为配合FOC的10KHZ运行速率,博主使用I2C的DMA模式+高速波特率1MHZ或ADC模拟的方式读取电机电角度,并讲明绝对值编码器在PMSM电机里如何让电角度对齐正确角度,最后用STM32Cubemx和keil5实习代码。1.I2C的HAL库函数及ADC的HAL库函数
  • 2024-12-17DMA与串口
    所写都是已知,未知并未包含,也并未去试1.串口有两种接收方式:定长与变长。每一种又分三类:普通,中断,DMA方式。定长:HAL_UART_Receive()  ,callback函数:voidHAL_UART_RxCpltCallback不定长:HAL_UARTEx_ReceiveToIdl,callback函数:voidHAL_UARTEx_RxEventCallback注意:
  • 2024-12-15STM32F103c8t6基于I2C协议的AHT20温湿度传感器的数据采集
    STM32F103c8t6基于I2C协议的AHT20温湿度传感器的数据采集一、了解I2C总线通信协议1、软件I2C2、硬件I2C二、工程建立1、设计要求2、STM32CubeMX的环境配置(一)STM32CubeMX的配置(二)KEIL配置三、代码编写1、AHT20-21_DEMO_V1_3.h2、AHT20-21_DEMO_V1_3.c3、main.c四、硬
  • 2024-12-14STM32_HAL库所用到的函数(持续更新)
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档目录文章目录HAL库概念及优点一、对HAl库常见的函数记录1.GPIOHAL库概念及优点HAL(HardwareAbstractionLayer)即硬件抽象层。它是ST(意法半导体)公司为其STM32系列微控制器推出的一种软件库。其主要
  • 2024-12-12蓝桥杯嵌入式模板创建(STM32 CubeMx简单使用教程)
    蓝桥杯嵌入式新板模板创建&简单经验分享补充在最前:以下原文是22年还未毕业时写的,仅在把板子二手卖给别人的时候给别人分享了这份笔记。那时经验不多,现在也由于工作使用的芯片不同已很久没有使用CubeMX了,因此文章可能有很多错漏之处,欢迎在评论区指出。备注在前:uint8_t即un
  • 2024-12-12使用正点原子的直流无刷驱动板自写FOC控制永磁同步(PMSM)电机(开环位置)
    由于ST官方MotorControlWorkbench生成的FOC代码过于复杂,决定自己使用正点原子的直流无刷驱动板自己编写FOC去控制PMSM电机。FOC代码参考的是灯哥的教材DengFOC官方文档。1、配置TIM1高级定时器 2、foc.c代码/**foc.c**Createdon:Dec11,2024*Author:M
  • 2024-12-10hal库点亮stm32f103c8t6最小板自带小灯
    hal库点亮stm32f103c8t6最小板自带小灯1.打开STM32CubeMX2.点击创建最小工程3.输入STM32F103C8T6,选中此芯片4.搜索框里面搜索PC13,这个是最小板上面自带的5.设置引脚模式6.创建命名工程,然后选择纯英文路径7.选择版本8.基本小配置9.生成工程代码,并打开
  • 2024-12-10串口空闲中断+DMA收发不定长数据
    编写代码时遇到了两个问题在串口使用DMA传输数据并且需要每传输一帧数据后产生空闲中断时出现问题问题原因:误认为hal库串口的空闲中断和接收中断使用的是同一个接收回调函数HAL_UART_Receive_IT(该函数会开启接收中断:标志位UART_IT_RXNE),经过查找发现接收中断回调函数只是在置
  • 2024-12-10STM32中使用低功耗定时器延时
    此篇文章在2022年5月19日被记录上文说了STM32L4的几种低功耗模式,将其应用起来作为一个低功耗的延时方案。为什么使用低功耗定时器,在追求长时间续航时,单片机有时需要切换到低功耗模式或者停止模式下,在这种模式下,系统主时钟关闭,有一些依赖于系统主时钟的应用程序,可能会发生出现
  • 2024-12-10STM32单片机芯片与内部13 TIM-通用定时器TIM2345 高级定时器TIM18-定时计数功能、库函数配置、HAL库配置
    目录一、通用定时器库函数工程模板1、TIM_TimeBaseInitTypeDef2、时钟3、初始化4、中断服务函数二、通用定时器库函数API1、初始化封装2、中断服务函数封装三、高级定时器库函数工程模板1、TIM_TimeBaseInitTypeDef2、时钟3、初始化4、中断服务函数四、高级定时
  • 2024-12-10STM32单片机芯片与内部12 TIM-基本定时器TIM67 -定时计数功能、库函数配置、HAL库配置、多定时器中断
    目录一、功能二、库函数工程模板1、NVIC_InitTypeDef与TIM_TimeBaseInitTypeDef2、时钟使能3、初始化4、清除中断5、开启/关闭中断6、使能/失能计数器三、库函数API1、初始化的封装2、中断服务函数四、HAL库工程模板1、TIM_HandleTypeDef2、TIM_MasterConfigType