自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 STM32 FreeRTOS 保护共享资源(关开中断 / 调度器上锁 / 信号量 / 互斥信号量)

本文介绍了共享资源保护的四种方法:临界区、调度器上锁和信号量和互斥信号量。临界区通过关中断实现原子操作,适用于短时操作但影响系统实时性;调度器上锁防止任务切换,适合长耗时操作但不保护中断;信号量用于任务同步和互斥访问,但可能导致优先级反转,要采取互斥信号量。FreeRTOS中提供了相关API函数,并区分了可管理的中断优先级范围(5-15),其中0-4为不可屏蔽的高优先级中断。实际应用中需根据场景选择合适方法,权衡实时性与安全性。

2025-11-28 14:41:25 947

原创 STM32 RTOS概述与FreeRTOS介绍

RTOS(实时操作系统)是为实时场景设计的专用操作系统,强调在限定时间内完成任务响应。FreeRTOS是一款轻量级开源RTOS,广泛应用于嵌入式系统。它具有规范的代码结构,支持任务管理、事件组、堆管理等核心功能。任务管理包括创建、删除、挂起和恢复等操作,通过xTaskCreate()创建任务,vTaskDelete()删除任务,vTaskSuspend()挂起任务。FreeRTOS遵循MISRA代码规范,提供模块化设计,支持并发处理,适用于STM32、ESP32等多种MCU平台。使用RTOS可提高系统

2025-11-26 20:19:17 754

原创 STM32 串口线A-B

本文将介绍STM32F4系列USART串口通信的初始化配置过程。主要步骤包括:1)启用USART和GPIO时钟;2)配置引脚复用功能(GPIO_PinAFConfig);3)初始化GPIO引脚参数(模式、速度、类型、上下拉);4)配置USART通信参数(波特率、数据位等);5)可选配置中断或DMA模式;6)最后启用USART模块。文中以USART1与PA9、PA10引脚为例,详细说明了每个配置环节的具体实现方法,并附有官方文档说明和代码示例。

2025-11-06 14:05:24 1043

原创 STM32 串口概念 UART协议

本文介绍了串行通信中的TTL电平标准及其应用。TTL(晶体管-晶体管逻辑)在串口通信中表示采用0V和3.3V/5V电平的串行通信标准,通常基于UART协议实现。文章详细说明了TTL串口的工作原理、连接方式、板级通信优势,并解释了UART协议的核心要素(帧结构、波特率、校验等)以及与USART的区别。同时,文章还对比了同步/异步通信、串行/并行通信以及单工/半双工/全双工等基础概念。这些知识为理解串口通信技术提供了基础框架。

2025-11-06 14:01:16 790

原创 STM32 异常和中断

文章摘要: ARM架构中异常和中断的处理机制分析,重点介绍了Cortex-M处理器的NVIC控制器特性。文章详细解析了STM32外部中断(EXTI)的工作原理,指出16条中断线(EXTI0-15)与GPIO引脚的映射关系,强调同一EXTI线只能连接一个引脚。提供了ST官方库的中断配置模板,包括LED初始化、EXTI线配置方法(SYSCFG寄存器设置)和软件中断触发实现。最后给出了中断服务函数的标准命名格式和优先级配置建议,为嵌入式系统中断处理提供实用参考。

2025-10-26 23:11:54 845

原创 STM32 系统定时器(精准延迟)

摘要:SysTick是Cortex-M4内核中的24位递减计数器,用于定时中断或事件延时。它可配置AHB时钟或其8分频作为时钟源。通过CTRL、LOAD、VAL寄存器控制计数启停、重装载值及状态监测。标准流程包括关闭定时器、设置计数值、清零计数器、启用定时器并等待计数完成。使用时需注意意外关闭中断问题,ST例程中未处理此情况。定时器位数影响定时时长,需通过计数值间接计算时间。SysTick_Handler为中断服务函数,需与启动文件定义一致。

2025-10-26 23:06:44 1008

原创 LVGL 快速入门:对象、事件与样式介绍

LVGL(Light and Versatile Graphics Library)是一款开源、轻量级且功能丰富的嵌入式 GUI 库,广泛应用于 STM32、ESP32 等 MCU/MPU 的图形界面开发。它提供了对象系统、样式系统、事件机制、布局管理、动画以及文件系统等完整功能,使开发者能够在资源有限的硬件上快速构建美观、流畅的界面。

2025-09-04 16:59:52 1383

原创 24位 BMP图片

BMP图片格式由文件头和数据组成,采用无压缩方式存储,文件体积较大。文件头包含两个关键结构体:tagBITMAPFILEHEADER(14字节)描述文件基本信息,tagBITMAPINFOHEADER(40字节)定义图像属性(宽高、位深等)。24位BMP无需调色板,直接存储RGB三通道数据。图像数据存储采用倒序方式:像素点从图像左下角开始,从左到右、从下到上排列,形成上下颠倒但左右顺序的存储特性。颜色值以BGR顺序存储,每个像素占3字节(0-255)。这种结构使BMP格式简单直观但存储效率较低。

2025-08-23 10:36:33 771

原创 一维数组与二维数组地址跨越

本文详细讲解了一维数组和二维数组的地址跨越问题。首先阐明了数组名的含义,指出除特殊情况外,数组名代表首元素地址,而在sizeof、取地址等情况下代表整个数组。接着通过示例说明了数组下标运算符的等价转换规则,包括一维数组的a[i]等价于*(a+i),以及二维数组的a[i][j]等价于*(*(a+i)+j)。最后重点分析了数组地址的跨越和偏移量计算,指出一维数组的偏移量基于元素类型大小,而二维数组的地址运算对应一维数组的整体偏移。文章通过具体代码示例和内存图解,帮助读者深入理解数组地址运算的本质原理。

2025-07-19 15:10:39 907

原创 printf scanf 缓冲区

printf scanf 缓冲区 简单谈

2025-07-14 19:32:18 1096

原创 Linux 进程认识与管理

Linux 进程认识与管理

2025-06-02 19:46:02 887

原创 Linux 用户组群与文件目录权限管理

Linux 用户组群与文件目录权限管理

2025-05-25 23:00:48 1025

原创 Linux常见基础指令

Linux基础指令

2025-05-24 19:08:25 701

原创 GPIO基础知识

STM32 GPIO基础介绍

2024-12-07 14:51:49 1953

原创 【C++】初识 - 模板

【C++】 初始 - 模板 函数模板 类模板

2023-06-09 12:58:21 139

原创 【C++】内存管理

C++ 内存管理 new与delete

2023-06-06 17:05:57 104

原创 【C++】类和对象(下)

【类和对象(下)】 初始化列表,explicit关键字,static静态变量,友元,内部类,匿名对象

2023-05-23 20:27:55 139 1

原创 类和对象(中)

默认成员函数(构造函数、析构函数、拷贝构造函数、运算符重载、取地址重载)

2023-05-18 21:11:08 160 1

原创 类和对象 (上)

类和对象(上)类的定义 限定符 this指针

2023-05-09 16:33:00 88

原创 交换排序 快速排序 冒泡排序

交换排序 快速排序 冒泡排序

2023-05-08 14:41:16 90

原创 【数据结构】选择排序 堆排序

C语言数据结构,选择排序 堆排序

2023-04-25 13:32:52 141

原创 【数据结构】插入排序 希尔排序

直接插入排序 希尔排序

2023-04-23 16:17:41 199

原创 【C++】命名空间

命名空间里面可以放 变量 函数 类型namespace 名int a;double b;...变量在使用嵌套变量时,同样是用::来访问。(套娃的感觉)...变量...变量int main()cout

2023-04-17 15:54:15 94 1

原创 【数据结构】 单链表

单链表实现

2023-03-17 16:46:21 119

原创 冒泡排序 -- 学C之旅

冒泡排序 -- 学C之旅

2022-12-16 14:50:03 167 2

空空如也

空空如也

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

TA关注的人

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