自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 嵌入式--文件系统FATFS

文件系统在嵌入式系统中是一种用于组织、存储和管理数据的机制,使得嵌入式设备能够高效地读写、修改和删除存储在非易失性存储器(如Flash、EEPROM、SD卡等)中的数据。它通常包含目录结构、文件命名规则、访问控制等组件,为应用程序提供统一的接口。FatFs文件系统的源码可以从fatfs官网下载:http://elm-chan.org/fsw/ff/00index_e.html参数类型描述fpFIL*指向一个FIL结构体的指针。该结构体用于存储打开文件的状态信息(如当前读写位置、文件大小等)。

2026-03-16 14:19:56 450

原创 ESP8266-MQTT-STM32点灯项目

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是一种基于发布/订阅模式的。

2026-03-12 16:25:25 355

原创 STM32-通信协议

CAN总线(Controller Area Network Bus)控制器局域网总线。串口通信(Serial Communication)是一种通过单根数据线逐位传输数据的通信方式。与并行通信(多根数据线同时传输多位数据)相比,串口通信节省硬件资源,适合远距离传输,广泛应用于设备间数据交互(如单片机与电脑、传感器与控制器等)。串口通信的核心特性异步/同步传输异步串口(如UART):无需时钟信号,依靠预定义的波特率(Baud Rate)和起始/停止位同步数据。同步串口。

2026-03-05 17:06:55 391

原创 STM32-Flash

STM32的内部Flash,就像是芯片自带的“固态硬盘”。,保证掉电后程序不会丢失。同时,它剩余的空间也可以用来。,比如设备配置参数、运行日志。

2026-02-28 10:50:11 123

原创 STM32-看门狗

【代码】STM32-看门狗。

2026-02-27 12:29:59 776

原创 STM32--PWR

PWR 是挂在 APB1 总线上的外设,只有使能了它的时钟,CPU 才能通过总线对 PWR 寄存器进行读写操作。如果没有使能时钟,对这些寄存器的配置将无效,芯片无法正确进入目标低功耗模式。(如定时器更新/捕获中断、UART 接收中断、I2C 中断、RTC 闹钟中断等)位(电源下降模式)以及可能的唤醒引脚使能位。(如 SysTick 中断、PVD 中断等。(如 GPIO 引脚边沿触发)位(调压器低功耗模式)等。

2026-02-27 11:08:31 775

原创 STM32时间戳&BKP&RTC

在STM32中,“时间戳”这个概念通常根据应用场景不同,指向两种不同的硬件功能:一是用于的或;二是用于的。

2026-02-26 13:42:51 984

原创 STM32时钟

则必须设置为36MHz(2分频),因为这条总线的最高频率限制是36MHz。你FreeRTOS配置中的。(如USART2/3、I2C、SPI2)的时钟。,选择这个72MHz的PLLCLK作为最终的。(如GPIO、ADC、USART1)的时钟。,其时钟基准就来源于经过精确分频后的系统时钟。(包括CPU、内存、DMA等)的时钟。就是指这一步产生的CPU核心频率。:首先启用外部的8MHz晶振作为。也设置为72MHz(1分频)。,因为它比内部的HSI更精准。设置为72MHz(1分频)。:将这个8MHz的信号送入。

2026-02-25 15:42:45 365

原创 FreeRTOS-任务函数

这种方法需要硬件支持,并且需要使用特殊的函数来创建任务。图中创建的两个任务Task1和Task2都有各自独立的内存空间,互相独立。在RTOS下,每个任务都有自己的栈空间。对于FreeRTOS来说,任务栈空间是在任务创建的时候从FreeRTOSConfig.h文件中定义的heap空间中申请的。当调用FreeRTOS的创建任务API函数xTaskCreate()时,FreeRTOS会在堆中开辟出一块空间,用于存放。xTaskCreate()和xTaskCreateStatic() 在创建任务时的区别。

2026-02-24 20:19:09 647

原创 STM32-ADC+DMA和USART+DMA

直接存储器存取(DMA)用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须CPU干预,数据可以通过DMA快速地移动,这就节省了CPU的资源来做其他操作。两个DMA控制器有12个通道(DMA1有7个通道,DMA2有5个通道DMA的基本结构3):代码。

2025-05-07 15:41:53 467

原创 STM32-定时器

目录一:定时器二:定时器的分类三:定时器寄存器四:输出比较五:输入捕获六:代码1通用定时器16位计数器、预分频器、自动重装寄存器的时基单元,在72MHz计数时钟下可以实现最大59.65s的定时。包含定时中断和内外时钟源选择、输入捕获、输出比较、PWM生成、编码器接口、主从触发模式等多种功能。时基单元包括以下寄存器:

2025-05-06 20:25:51 739

原创 FreeRTOS-创建任务

TaskFunction_t pvTaskCode,//函数configSTACK_DEPTH_TYPE usStackDepth,//栈的大小UBaseType_t uxPriority,//优先级TaskHandle_t *pxCreatedTask//TCB结构体 Task Control Block。

2025-05-02 18:07:41 851

原创 STM32CubeMX移植FreeRTOS

不同的操作系统创建任务的函数不一样,FreeRTO中是xTaskCreate创建任务,RT-Thread中是rt_thread_creat创建任务,为了方便增加一个统一的接口层,smsis_os.c文件中会抽象出一个统一的接口osThreadNew。基础知识:R13寄存器保存SP(栈指针),R14寄存器保存LR(返回地址),R13寄存器保存PC(当前指针)在数据被打断的瞬间会保存所有寄存器的值,保存到内存的栈里面。一个任务就是函数和它的栈,被称为运行中的函数。找到最高优先级的运行态,就绪态的任务去运行。

2025-04-25 23:12:11 808 1

原创 STM32-中断

define GPIO_MODE_IT_RISING_FALLING /*Rising/Falling edge trigger detection*/双边沿触发。/* 抢占1,子优先级2 */最后在void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin);

2025-04-25 10:34:52 777

原创 c++指针

函数指针是指向函数的指针变量。同指针用法一样,只不过函数指针指向函数。

2024-02-17 13:14:55 265 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除