自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 STM32——FreeRTOS - 任务挂起与恢复

本文围绕任务挂起与恢复机制展开分析。首先介绍了实现任务挂起与恢复的相关API函数及其功能。其次通过实验验证了任务挂起和恢复的操作流程及效果。接着对任务挂起和恢复API函数进行了详细解析,阐明其内部实现原理。最后总结了课堂要点,系统梳理了任务调度中挂起与恢复机制的重要性和实现方法。全文从理论到实践,完整呈现了任务挂起与恢复机制的关键技术要点。

2026-03-25 22:02:15 127

原创 STM32——FreeRTOS - 任务创建和删除 ~ 静态方法

本文介绍了FreeRTOS中静态创建和删除任务的方法。主要内容包括:1)在FreeRTOSConfig.h中配置静态内存分配相关宏定义;2)需要手动实现vApplicationGetIdleTaskMemory和vApplicationGetTimerTaskMemory函数来分配空闲任务和定时器任务的内存;3)详细展示了任务创建流程,包括任务堆栈和控制块的静态定义,以及xTaskCreateStatic函数的使用方法;4)提供了完整的示例代码,演示了如何创建多个任务并通过按键删除指定任务。相比动态方法,静

2026-03-25 21:40:41 417

原创 STM32——FreeRTOS - 任务创建和删除 ~ 动态方法

本文详细分析了FreeRTOS中任务创建和删除的动态实现过程。任务创建方面,通过xTaskCreate函数动态分配TCB和堆栈空间,初始化任务控制块并设置任务优先级,最终将任务加入就绪列表。任务删除方面,vTaskDelete函数处理任务移除逻辑,区分当前任务和非当前任务两种情况:非当前任务直接释放资源,当前任务则需切换至空闲任务进行资源回收。文章还深入探讨了任务堆栈初始化、优先级处理、临界区保护等关键实现细节,并解析了空闲任务在资源回收中的重要作用。这些机制共同保障了FreeRTOS任务管理的安全性和高效

2026-03-22 23:34:47 332

原创 STM32——FreeRTOS - 任务创建和删除*

本文介绍了FreeRTOS中任务创建和删除的API函数。动态方式通过xTaskCreate()自动分配堆栈空间,而xTaskCreateStatic()需用户手动分配。vTaskDelete()用于删除任务,会从所有任务列表中移除该任务,并自动释放系统分配的内存(动态方式)。静态方式需用户自行释放内存。删除当前任务时可传入NULL参数。文章还对比了动态和静态两种创建方法的特点及实现流程。

2026-03-18 22:46:06 318

原创 STM32——FreeRTOS - 移植

本文介绍了FreeRTOS操作系统的学习要点,主要包括:1)如何获取FreeRTOS V10.4.6源码;2)关键源码文件说明(include、portable等文件夹);3)FreeRTOS移植目的;4)系统配置文件解析。文章为STM32开发者提供了FreeRTOS学习的总体框架,包含源码下载地址和核心文件介绍,适合嵌入式系统开发者参考。

2026-03-11 22:42:12 89

原创 STM32——FreeRTOS - 基础

摘要:任务调度系统包含抢占式和时间片两种调度方式。抢占式调度中,高优先级任务可中断低优先级任务执行,被抢占任务进入就绪态。时间片调度则按时间轮转执行任务。任务状态包括就绪态(pxReadyTasksLists)、延迟态(pxDelayedTaskList)和挂起态(xSuspendedTaskList)。相同优先级任务按创建顺序后进先出执行,不同优先级则优先执行高优先级任务,仅当优先级相同时才采用时间片调度。

2026-03-10 22:24:13 74

原创 STM32——FreeRTOS - 入门

《FreeRTOS实时系统入门教程》摘要:本视频教程由正点原子团队制作,全面讲解FreeRTOS实时操作系统。内容涵盖裸机系统与RTOS的区别(裸机采用中断优先级控制但任务处理能力有限,RTOS支持多线程切换和优先级调度),FreeRTOS作为免费嵌入式RTOS的特性与优势,以及相关学习资源(官网freertos.org和正点原子提供的视频/文档/代码)。教程基于ARM Cortex-M架构讲解任务切换等核心概念,适合嵌入式开发者系统学习。

2026-03-02 22:09:15 588 1

原创 STM32——DMA

本文系统介绍了STM32的DMA(直接内存访问)功能。主要内容包括:DMA的基本概念和工作原理,STM32F1系列的DMA结构框图分析,DMA相关寄存器和HAL库驱动函数详解。重点讲解了DMA配置步骤,包括时钟使能、初始化、传输启动等关键操作,并介绍了DMA_HandleTypeDef和DMA_InitTypeDef等核心结构体。文章最后通过编程实战演示DMA应用,总结了DMA作为数据传输通道的作用,以及STM32中DMA1(7个通道)和DMA2(5个通道)的资源分配情况。

2026-01-26 21:12:06 446

原创 STM32——MPU(内存保护)

【免费】STmcu选型手册资源资源-CSDN下载【免费】芯片资料STM32F103ZET6(中文版)资源-CSDN下载【免费】STM32F1系列参考手册-V10(中)

2026-01-17 14:41:57 66

原创 STM32——定时器:高级定时器

本文介绍了高级定时器的功能及应用实验。主要内容包括:1)高级定时器输出指定个数PWM实验,通过RCR寄存器控制PWM输出数量;2)输出比较模式实验,实现方波输出和相位控制;3)互补输出带死区控制实验,用于H桥电机驱动,防止MOS管直通;4)PWM输入模式实验,测量PWM信号参数。详细说明了各实验的原理、配置步骤和HAL库函数使用方法,并提供了相关例程下载链接。通过合理设置ARR、PSC、RCR等寄存器参数,可实现精确的定时控制和PWM信号处理。

2026-01-17 14:31:41 858

原创 STM32——定时器:通用定时器

本文介绍了STM32F1系列通用定时器的功能与应用。主要内容包括:1)通用定时器TIM2-5的基本特性,如16位计数器、预分频器、4个独立通道等;2)计数器时钟源的4种模式(内部时钟、外部时钟模式1/2、内部触发输入)及其配置方法;3)详细讲解了PWM输出实验和输入捕获实验的实现步骤,包括寄存器配置、HAL库函数使用等;4)介绍了脉冲计数实验原理及配置流程。通过实例代码展示了如何利用定时器实现PWM输出、脉宽测量和脉冲计数功能,为STM32定时器开发提供了实用参考。

2026-01-17 14:29:27 640

原创 STM32——定时器:基本定时器

STM32——定时器:基本定时器

2026-01-17 14:24:01 684

原创 STM32——定时器

本文介绍了STM32定时器的学习框架和基础知识。主要内容包括:1.定时器概述,对比了软件定时和硬件定时的优劣;2.STM32定时器的分类和特性,重点介绍了F1系列基本/通用/高级定时器的区别;3.详细讲解了基本定时器的工作原理、框图、计数模式、中断实验寄存器配置和溢出时间计算方法;4.提供了定时器中断实验的具体配置步骤和编程实践指导。文章通过理论讲解与实验结合的方式,帮助读者系统掌握STM32定时器的工作原理和应用方法。

2025-11-05 20:47:32 542 1

原创 STM32——WWDG

本文概述了STM32学习资源及WWDG(窗口看门狗)相关内容。介绍了WWDG的基本原理、寄存器配置和超时时间计算方法,并详细说明了配置步骤及编程验证方法。通过对比IWDG(独立看门狗)和WWDG的主要区别,帮助读者理解两者的应用场景。文章还提供了STM32芯片选型手册、参考手册等免费学习资源,为开发者快速掌握STM32的WWDG功能提供了系统性的学习路径。

2025-10-30 21:50:14 378

原创 STM32——IWDG

本文介绍了STM32的独立看门狗(IWDG)功能,包括其递减计数器特性、RC振荡器时钟源以及在系统复位中的作用。详细解析了IWDG的寄存器结构(键寄存器、预分频器寄存器、重装载寄存器、状态寄存器)和工作原理,提供了溢出时间计算公式,并说明HAL库简化了配置过程。最后提到实际编程中的喂狗操作和配置步骤,帮助开发者掌握IWDG的使用方法,确保系统稳定运行。

2025-10-27 22:43:45 450

原创 LeetCode刷题总结

为什么 n & 1可判断是奇数?二进制: 0b 8 4 2 1,bit0 为 2 的0次方,后续皆为 2的n次方,bit0为奇数,则都为奇数。

2025-10-21 23:42:37 215

原创 STM32——串口

本文系统介绍了STM32串口通信的学习要点。首先阐述了数据通信的基础概念,包括串行/并行通信、单工/半双工/全双工通信方式,以及同步/异步通信的区别。重点讲解了STM32的USART模块、HAL库初始化机制和中断回调机制,详细说明了异步通信配置步骤和IO引脚复用功能。最后通过串口收发字符的编程实例和源码解读,帮助读者掌握STM32串口通信的实践应用。文章为STM32串口通信学习提供了完整的知识框架和实践指导。

2025-09-02 20:57:36 490

原创 STM32——中断

本文介绍了STM32中断系统的基本概念和应用,重点讲解了NVIC(嵌套向量中断控制器)和EXTI(外部中断/事件控制器)的工作原理及使用方法。主要内容包括:1.中断向量表的结构与作用;2.NVIC优先级分组机制(共5组)及寄存器配置方法;3.HAL库中断配置三步骤(设置分组、优先级、使能中断);4.EXTI控制器特性及与GPIO的映射关系;5.通过实际案例演示如何利用外部中断控制LED灯状态。

2025-08-27 21:03:03 1440

原创 STM32——GPIO

本文系统总结了STM32F1系列GPIO模块的学习要点,主要包括:1. GPIO基本特性与引脚分布;2. 8种工作模式(输入/输出/复用/模拟)及其特点;3. 关键寄存器配置(CRL/CRH、ODR、IDR等);4. HAL库驱动开发流程(时钟使能、初始化、读写操作);5. 实践案例:LED控制与按键扫描实现,包含硬件电路分析、软件消抖处理及状态检测方法。

2025-08-12 21:54:46 593

原创 STM32——system文件夹

本文介绍了STM32学习总纲,重点讲解SYSTEM文件夹中的sys、delay和usart模块。详细剖析了delay文件夹中SysTick定时器的工作原理,包括时钟源选择和寄存器配置(LOAD/VAL寄存器关系)。文章具体说明了delay_init()、delay_us()和delay_ms()三个关键延时函数的实现原理。最后提到可通过MDK工程进行裸机测试,使用断点验证延时精度。该内容为正点原子整理的STM32常用驱动函数,可直接应用于实际项目开发。

2025-08-11 21:36:42 575

原创 STM32——时钟系统

本文介绍了STM32时钟系统的学习框架,重点解析了STM32F1系列的时钟树配置。内容涵盖:1)时钟源分类(外部/内部高低速晶振);2)总线架构(AHB/APB);3)HAL库时钟配置函数(HAL_RCC_OscConfig等);4)系统时钟初始化流程;5)外设时钟管理方法;6)使用STM32CubeMX配置时钟的实践要点。特别强调了FLASH时钟与系统时钟的关系,以及在72MHz主频下FLASH需要设置等待周期的注意事项,为STM32时钟系统开发提供了完整的技术指引。

2025-08-09 20:31:39 1263

原创 STM32——STM32CubeMX

本文介绍了STM32CubeMX工具的使用指南,主要内容包括:一、工具简介,说明其专用于STM32芯片配置;二、安装步骤;三、以F1系列为例详解新建工程流程,涵盖芯片选型、时钟配置、GPIO设置、内核调试等关键步骤;四、特别提醒避免中文路径问题,否则会导致启动文件缺失,需手动添加.s文件解决。文章强调用户代码应写在预留区,并提供了完整的工程配置到代码生成的操作流程。

2025-08-07 21:17:57 1020

原创 STM32——启动过程浅析

本文介绍了STM32开发中的Map文件解析和启动过程分析。主要内容包括:1)Map文件组成与作用,详细解析了函数调用关系、内存分布等关键信息;2)STM32不同系列(F1/F4/F7/H7)的启动模式设置,重点说明MSP和PC指针的定位原理;3)启动文件分析,涵盖Reset_Handler函数、中断向量表和堆栈分配等内容。通过Map文件可查看实际启动地址,帮助开发者优化代码和内存使用。文章为STM32开发者提供了系统的学习框架和调试方法参考。

2025-08-02 13:20:43 886

原创 STM32——HAL 库MDK工程创建

本文介绍了基于HAL库的STM32工程新建方法。主要内容包括:1)工程目录结构(Drivers、Middlewares等文件夹);2)工程框架搭建步骤(删除原有工程文件);3)文件添加方法(手动选择.c文件并修改属性);4)MDK配置要点(Target、Output等6个选项卡设置);5)main.c文件创建(保存到User文件夹并导入)。文章提供了从零开始建立STM32 HAL库工程的具体操作指南,适合初学者快速上手STM32开发。

2025-07-31 22:08:47 666

原创 STM32——HAL库

本文系统介绍了STM32开发中的关键知识点:1. 概述了CMIS架构和HAL库特点;2. 详细说明STM32Cube固件包的获取方式及目录结构,重点分析正点原子整理的固件包中CMSIS关键文件;3. 解析HAL库框架结构,包括文件夹组织、API命名规则、寄存器操作宏定义和回调函数机制;4. 阐述HAL库实际应用,包括开发文件结构、用户配置方法(外设驱动裁剪和晶振频率设置)及设备驱动层调用。内容涵盖从理论到实践的完整STM32开发流程。

2025-07-29 22:29:22 1853

原创 STM32——寄存器映射

本文总结了STM32 HAL库的寄存器基础知识和映射原理。主要内容包括:1)寄存器概念,类比电路开关控制功能;2)寄存器类型与映射方法,通过指针转换实现地址访问;3)存储器映像分析,包括总线基地址和GPIO外设地址计算;4)结构体映射技术,利用连续内存分配特性实现寄存器访问。重点阐述了寄存器地址计算方法和结构体指针映射原理,为深入理解STM32底层驱动开发提供了基础指导。

2025-07-28 22:18:21 793 1

原创 STM32——存储器映射(Memory mapping)

《STM32F103ZET6存储器架构解析》摘要:本文介绍了STM32F103ZET6芯片的存储器系统,重点阐述其寻址机制(1地址对应1字节)和存储器映射原理。对比了存储芯片与单片机的差异(单片机采用8位数据线)。详细解析了存储器功能划分的三个主要区块(BLOCK0、BLOCK1、BLOCK2),其中BLOCK0-BLOCK2构成片上外设的核心存储区域,为开发者理解STM32存储架构提供了基础认知框架。

2025-07-01 21:58:01 533

原创 STM32——DAP下载程序和程序调试

从原理图可知,此接口不仅支持JTAG接口,还支持SWD,(SWIO、SWCLK) .正点原子DAP仿真器:链接:这里默认SWD,因为就使用了两个IO口。时钟配置10MHz,实际只有4MHz,由MDK自动配置。 F1系列Device Size为512K,只能给芯片容量小于此值的下载,向下兼容。右上角为下载算法要使用的RAM。(默认就行) 推荐SWD接口调试的缘由:F1通过配置AFIO_MAPR寄存器,可释放下面三个IO口。参考手册:STM32 F10xx参考手册 中文版 :全局变量查看仿真窗口→断点快速设置

2025-06-30 23:02:50 1090

原创 STM32——学习总纲

STM32 HAL 库总结

2025-06-29 20:47:53 378

原创 STM32——MDK5编译和串口下载程序+启动模式

STM32——MDK5编译和串口下载程序+启动模式

2025-06-29 16:56:30 530

原创 CRC3校验算法

CRC3真没人分享算法啊

2025-06-23 22:42:54 408

原创 git互联GitHub 使用教程

简单的git与GitHub互联教程,单纯的个人上传代码仓库教程,多人则需考虑git checkout

2025-06-05 01:55:54 539

原创 2-1 基本放大电路

需要基本电路分析中的戴维南等效电路

2025-03-25 22:11:31 928

原创 ELSE、基础算法

for(i=min;i<=max;i++){flag=1;if(i<=2)flag = 0;for(j=2;j<sqrt(i);j++){flag = 0;count++;

2025-03-11 09:15:00 183

原创 十三、静态库 && 动态库

因为如果调用多个他.c 麻烦(例如不同公司间的软件开发合作,不能提供代码,只能提供软件.a) ——> 引进库(库也是文件,也是代码) ——> 做成一个静态库。

2025-03-11 09:00:00 641

原创 十二、文件读写

关键问题是同时读写,只要你使用标准库的I/O操作,同时读写的结果都是没有定义的,不管是像楼主的代码那样使用两个文件指针,或者使用fseek。如果是分别用fopen打开的两个指针,也存在这个问题,因为你没有办法掌握I/O系统刷新的确切时间,可能你的写操作生效以后,读操作可以得到更新后的数据,或者也可能由于缓冲的原因,前一次读操作已经把剩余内容全部读到缓冲区中,这样读操作得到的数据是前一次的快照,不能反映最新的变化。这个函数实际上,会清空缓冲区中的数据,关闭文件,并释放用于该文件的所有内存。

2025-03-10 09:00:00 769

原创 十一、宏定义

一般形式:#define 宏名 宏体一般定义在函数外部,可在任意处定义#undef 宏名 // 可终止宏名的作用域引号中的内容与宏名相同也不置换功能(宏展开):预编译时,用宏体替换宏名 ---- 不作语法检查生命周期:从声明处开始,若无#undef,则到程序终止为止,反之,则在#undef处结束宏定义可以嵌套,不能递归宏定义时,需要使用必要的括号 ---- 宏展开为不作语法检查的展开,若无括号,程序读取语句优先级可能会不符合逻辑一般形式:#define S(a,b) (a)*(b)

2025-03-09 09:00:00 406

原创 十、链表操作

1、当需要存储一个比较大的数据时,如果使用数组,就意味着需要计算机分配一个连续的一整块内存空间系统会分配空间失败。2、链表中数据元素的逻辑顺序是通过链表中的指针链接次序实现的。1、链表(linked list)是一种在物理上非连续、非顺序的数据结构,由若干节点(node)所组成。双向链表的每一个节点除了拥有data和next指针,还拥有指向前置节点的prev指针。1、头结点的数据类型和首节点的类型是一摸一样。尾节点:存放最后一个有效数据的节点。一个是存储数据元素的数据域。首节点:存放第一个有效数据的节点。

2025-03-09 02:30:00 486

原创 九、结构体

为了模拟一些复杂的事物,把一些基本的数据类型组合在一起,形成了一种新的复合数据类型。//第一种:经常使用,也是推荐的一种。int age;char sex;​//第二种int age;char sex;}st2;​//第三种structint age;char sex;}st3;​。

2025-03-08 16:55:40 966

原创 八、排序算法

for(i=0;i < len-1;for(j=0;break;

2025-03-08 15:39:56 524

FreeRTOS-Porting-Experiment

FreeRTOS_Porting_Experiment

2026-03-15

FreeRTOS开发指南-V1.10

FreeRTOS开发指南_V1.10

2026-03-11

FreeRTOS-Source-Code-V10.4.6

FreeRTOS_Source_Code_V10.4.6

2026-03-11

DMA脑图总结F1 H7 F4 F7

DMA脑图总结F1 H7 F4 F7

2026-01-28

基础、通用、高级定时器脑图

基础、通用、高级定时器脑图

2026-01-17

Proj-14-TIM-Advanced Timer PWM Input Mode Experiment

Proj_14_TIM_Advanced Timer PWM Input Mode Experiment

2026-01-17

Advanced Timer Complementary Output with Dead-Time Control Project

Advanced Timer Complementary Output with Dead-Time Control Project

2026-01-17

Proj-10-TIM-脉冲计数实验

Proj_10_TIM_脉冲计数实验 外部时钟模式1

2026-01-08

编程实战:通用定时器PWM输出实验

编程实战:通用定时器PWM输出实验

2025-12-20

窗口看门狗MDK实验工程

窗口看门狗MDK实验工程

2025-11-05

iwdg stm32 脑图

iwdg stm32 脑图

2025-10-30

串口总结-脑图,思维导图

串口总结——脑图,思维导图

2025-10-27

XCOM正点原子(ALIENTEK)官方推出的串口调试助手XCOM

内容概要:本文介绍了正点原子(ALIENTEK)官方推出的串口调试助手XCOM,强调其功能强大、使用便捷,并推荐用户优先使用XCOM而非SSCOM。文中指出XCOM运行需预先安装.NET Framework 4.0环境,若未安装需先运行提供的dotNetFx40_Full_x86_x64.exe进行安装。同时提供了XCOM的详细介绍链接及相关技术支持渠道,包括公司官网、技术论坛、购买地址、在线视频平台及社交媒体账号,便于用户获取最新资料与交流学习。; 适合人群:嵌入式开发初学者、电子技术爱好者、从事单片机或物联网开发的工程师;需要使用串口调试工具的技术人员。; 使用场景及目标:①用于嵌入式系统开发过程中串口通信的调试与数据收发;②通过XCOM工具实现设备与PC间稳定高效的通信测试;③结合正点原子开发板进行配套学习与项目开发;④访问官方资源获取技术支持与最新教程。; 阅读建议:首次使用XCOM前务必确认系统已安装.NET Framework 4.0,避免软件无法运行;建议收藏官方论坛和技术网站以便及时获取更新资料和社区支持。

2025-10-25

串口实验工程通过串口接收或者发送字符

串口实验工程通过串口接收或者发送字符

2025-10-25

ST mcu选型手册资源

mcu选型手册资源

2025-09-05

STM32F10xxx闪存编程参考手册

STM32F10xxx闪存编程参考手册

2025-08-09

STM32CubeMx&&Java软件包

STM32CubeMx&&Java软件包

2025-08-07

ARM Cotrex-M3权威指南(英文).zip

ARM Cotrex-M3权威指南(英文)

2025-08-02

STM32 启动文件浅析-V1.2

STM32 启动文件浅析_V1.2

2025-08-02

STM32 MAP文件浅析-V1.1

STM32 MAP文件浅析_V1.1

2025-08-02

正点原子整理固件包包F1

正点原子整理固件包包F1

2025-07-29

stm32芯片资料STM32F103ZET6(English)

stm32芯片资料baobaobaobaobo

2025-07-28

芯片资料STM32F103ZET6(中文版)

芯片资料STM32F103ZET6(中文版)

2025-07-01

STM32F1系列参考手册-V10(中)

STM32F1系列参考手册_V10(中)

2025-06-30

CH340 USB 虚拟串口驱动

CH340 USB 虚拟串口驱动

2025-06-29

STM32串口下载软件(ATK-XISP)

STM32串口下载软件(ATK-XISP)

2025-06-29

空空如也

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

TA关注的人

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