自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【FreeRTOS】任务、任务状态

时,调度器会选中空闲任务执行 —— 它本质是一个无限循环的空函数(或极简逻辑),用来 “消耗” CPU 的空闲时间,防止 CPU 处于无任务可执行的 “空转” 状态(空转会导致功耗浪费或硬件异常)在 FreeRTOS 中,删除任务的函数为vTaskDelete(),作用是将指定任务从系统中移除,被删除的任务不再参与调度。任务退出的本质是 “让任务从系统中消失,不再参与调度”,在 FreeRTOS 中唯一的方法是调用vTaskDelete(),是比阻塞态更 “被动” 的状态,只能通过手动 API 唤醒。

2025-12-02 15:28:39 759

原创 【FreeRTOS】堆与栈的理解

RTOS 的多任务,本质是多个 “独立的执行流” 在 CPU 上分时运行(任务 A 跑 1ms,切换到任务 B 跑 1ms),每个任务就像 “独立的小程序”,都需要自己的栈来存,在切换任务时,会把A自己的。如果所有任务共用一个栈,任务 A 刚在栈里存了局部变量x=1,切换到任务 B 后,任务 B 的局部变量会把x=1覆盖掉,等切回任务 A 时,x的值已经被改成任务 B 的数据,程序直接乱套。栈顶指针(ESP/RSP):指向最顶端,栈是从高地址往低地址生长的,所以 ESP/RSP 会随着数据压栈。

2025-11-28 21:58:04 723

原创 【嵌入式Linux】Makefile基础

1.延迟赋值(=)A = 123A = 456 # 后续修改A的值all:echo "$(A)" # 执行时输出“456”,因为A是延迟赋值,使用时取最新的值2.立即赋值(:=)A := 123A = 456 # 后续尝试修改A的值all:echo "$(A)" # 执行时输出“123”,因为A是立即赋值,定义时就固定了值3.空赋值(?=)A?= 123 # A未定义,所以赋值为123A?= 456 # A已定义,所以此赋值无效all:echo "$(A)" # 执行时输出“123”

2025-11-14 20:51:29 236

原创 裸机与Linux下编译运行代码程序过程的不同

第一步:代码的编写对于printf代码的实现,还需要串口驱动第二步:通过keil等编译工具直接编译第三步:烧录只需要通过烧录工具,一键烧录第四步:上电即可串口输出。

2025-11-08 20:55:04 247

原创 【嵌入式Linux】shell启动方式对变量的影响

变量仅在临时环境生效,不影响当前 shell。变量在当前 shell 永久生效。如果你写了一个 “设置环境变量” 的脚本(比如配置交叉编译器路径),必须用source或执行,否则变量不会生效。如果你只是想 “临时运行一个脚本,不影响当前环境”,就用子 shell 方式执行。

2025-10-28 19:12:58 258

原创 【嵌入式Linux】shell脚本编程基础讲解

shell 脚本编程是嵌入式 Linux 开发中非常实用的技能,简单说就是 “把一系列 Linux 命令写到一个文件里,让系统自动按顺序执行”,相当于给电脑写一个 “命令批处理小工具”。核心作用:“调度执行”—— 把用户的命令传递给 Linux 内核,让内核调用硬件资源(CPU、内存、硬盘)完成操作,本身不做 “翻译代码” 的工作。的二进制指令到 CPU,最终输出 “hello”——shell 只是 “传达命令”,不参与hello。时,shell 的作用是:告诉内核 “去执行当前目录下的hello。

2025-10-26 19:25:45 333

原创 【江协科技平衡车系列】二、编码器教学讲解

江协最近推出了平衡车,但是还没有出完整的教学视频,这导致一些同学买了但是没有非常适配的教程,所以博主想用江协平衡车出一个系列教程,带大家学会平衡车。文章中若出现错误欢迎大家指正。一、编码器初始化代码编码器初始化大概可以分成五步1.开启定时器与GPIO时钟// 1. 开启时钟(单片机外设工作前必须先“通电”,时钟就是“电”)// 给定时器3“通电”// 给GPIOA端口“通电”(编码器信号接在这里)2.GPIO初始化// 2. 配置GPIOA的引脚(接编码器的A相和B相)

2025-10-25 21:39:27 303

原创 【江协科技平衡车系列】一、电机驱动教学讲解(超详细易懂)

江协最近推出了平衡车,但是还没有出完整的教学视频,这导致一些同学买了但是没有非常适配的教程,所以博主想用江协平衡车出一个系列教程,带大家学会平衡车。文章中若出现错误欢迎大家指正。

2025-10-11 21:35:14 1314

原创 STM32单片机IAP固件升级讲解

STM32 的 IAP 升级本质是通过 “Bootloader + 分区 Flash + 跳转机制” 实现的,核心是让设备在不拆壳、不接编程器的情况下,自己更新 App 程序。这种方式极大简化了嵌入式设备的维护和升级,是工业控制、物联网设备的必备功能。实际开发中,需重点关注 Flash 分区、跳转逻辑和固件校验这三个关键点。

2025-09-29 14:43:15 1253

原创 CAN通信应用速成(配置步骤通俗易懂)

本文介绍了STM32上CAN通信的配置与应用,主要包含三部分内容:1. 使用CubeMX配置CAN总线波特率,以500kHz为例说明参数设置方法;2. 详细讲解CAN过滤器的两种模式(掩码模式和列表模式)及其实现原理,说明如何通过寄存器设置筛选特定ID报文;3. 给出CAN数据收发代码实现,包括发送函数封装和接收缓冲区处理。文章通过HAL库示例,完整呈现了STM32 CAN通信从硬件配置到软件实现的开发流程。

2025-09-24 20:21:49 1124

原创 【STM32】CAN通信详解(HAL库配置示例)

插:兄弟们学习的时候一定要认真检查线接没接对,博主学can的时候线接错了,被卡了两天QAQ。

2025-09-01 08:15:00 1127

原创 【STM32】TIM定时器详解

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。

2025-08-09 08:00:00 1093

原创 【STM32】时钟系统超详细讲解(含常见疑问)

本系列适用于回顾复习与进阶,零基础的同学可以在学习过程中通过此系列复习。

2025-08-05 14:10:31 1755

原创 【STM32】SPI详解(含标准库、HAL库配置示例)

本系列适用于回顾复习与进阶,零基础的同学可以在学习过程中通过此系列复习。

2025-08-01 10:35:06 2314 2

原创 【STM32】IIC详解(含标准库、HAL库配置示例)

本系列适用于回顾复习与进阶,零基础的同学可以在学习过程中通过此系列复习。

2025-07-28 22:31:20 1062

原创 【STM32】串口通信UART详解(含标准库、HAL库配置示例)

本系列适用于回顾复习与进阶,零基础的同学可以在学习过程中通过此系列复习。

2025-07-26 19:53:47 1501

原创 【STM32】GPIO详解(含标准库、HAL库配置示例)

本文介绍了GPIO的四种输出模式(通用/复用推挽输出、通用/复用开漏输出)和三种输入模式(上拉、下拉、浮空输入)。重点分析了推挽与开漏输出的区别:推挽通过双MOS管直接驱动高低电平,而开漏仅能主动拉低,需外接上拉电阻获得高电平。文章还区分了通用模式(直接控制)和复用模式(外设控制)的应用场景,并提供了STM32标准库和HAL库的配置示例。适合嵌入式开发人员复习参考,尤其针对STM32F103C8T6等常用MCU的GPIO配置。

2025-07-24 13:44:47 1118 1

空空如也

空空如也

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

TA关注的人

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