- 博客(31)
- 收藏
- 关注
原创 STM32CubeMX的main.c开头介绍
严禁修改标签本身:不要删除或修改 /* USER CODE BEGIN ... */ 这行注释本身,哪怕少一个空格,工具都可能识别不到,导致你的代码丢失。对号入座:尽量按 C 语言规范放置代码(变量放 PV,头文件放 Includes),虽然你全写在一个区域里也能编译通过,但代码会很难看且难以维护。如果代码被覆盖了:如果你不小心写在外面并重新生成了代码,去你的工程文件夹下的 Backup 目录(如果开启了备份)或者用 Git 版本控制找回。
2025-12-15 20:45:10
682
原创 FreeRTOS 软件定时器学习大纲
(10s) -> 也就是“续命”;开启蜂鸣器 -> 启动单次定时器 -> 时间到在回调里关闭蜂鸣器。:软件定时器的“管家”。创建时设为 Auto-reload -> 周期性执行回调。:所有定时器共用一个守护任务,一个卡死,全家瘫痪。:申请内存,设置周期、模式、ID 和回调函数。:响一次就停止(“冬眠”)。:创建后处于“冬眠态”,不会自动运行。(50ms) -> 回调读取电平。:复位(重新开始倒计时,最常用)。:启动(若已运行则等同于复位)。:给定时器贴的“标签”。:停止(进入冬眠)。
2025-12-13 22:25:24
307
原创 freertos学习笔记12--个人自用-第18章 资源管理(Resource Management)
除了互斥量(Mutex)之外,如何通过和来实现对临界资源的独占访问。
2025-12-13 22:24:48
351
原创 FreeRTOS 中断管理 (Chapter 17) 核心学习大纲
虽然人类肉眼可能看不出区别,但请在脑海中模拟出 CPU 那 1ms 的“发呆”延迟。理解了这 1ms 的差异,你就真正掌握了 FreeRTOS 中断管理的精髓。:只做最快的事(清除标志、记录数据、发送信号量),然后立即退出。:接收信号量,处理耗时的逻辑(数据解析、算法、打印)。这是本章最难理解,但也是让系统“实时性”最强的部分。这是所有代码的基础,违反这些原则会导致系统崩溃。:ISR 是硬件决定的,任务是软件调度的。最后,你需要把这个“万能模板”印在脑子里。:它是一张“切换任务通知单”。
2025-12-13 11:49:34
368
原创 freertos学习笔记13--个人自用-第17章 中断管理(Interrupt Management)
是什么:一个BaseType_t类型的变量,作为标志位。什么含义pdTRUE= 有更高优先级的任务醒了,需要通过立即切换。怎么用:定义变量 -> 传址给函数 -> 最后调用 YIELD。中断延迟处理是解决“中断必须快”与“业务逻辑很复杂”这对矛盾的最佳手段。ISR 的职责:仅仅是当一个“二传手”,负责通知。Task 的职责:才是真正的“处理者”。关键点:这个 Task 必须是高优先级,这样效果看起来就像中断立刻得到了处理一样,但又不会因为长时间占用中断资源而影响系统的稳定性。
2025-12-13 11:49:23
1029
原创 FreeRTOS 任务通知(Task Notifications)大纲
默认首选:在一般的单对单同步场景(尤其是中断发给任务),无脑使用任务通知。特殊备选:只有当任务通知满足不了需求(需要广播、传大结构体、发送阻塞)时,再回退使用传统的队列或信号量。
2025-12-12 00:24:56
940
原创 FreeRTOS第14章 事件组 (event group)学习大纲
定义:FreeRTOS 中的“多功能状态指示灯”或“全局任务清单”。本质:一个 32 位的整数 (EventBits_t),每一位代表一个事件。
2025-12-12 00:24:38
734
原创 freertos学习笔记12--个人自用-第16章 软件定时器(software timer)
想象一下,你(作为 CPU)正在看书(执行主程序)。30分钟后去关火(单次任务)。每隔 1 小时喝一次水(周期任务)。你不会一直盯着墙上的钟表看(那是轮询,非常浪费精力)。相反,你在手机上设了两个闹钟。闹钟响了,你就停下看书,去关火或喝水。别在里面delay,因为你阻塞的是“守护任务”,会卡死所有其他定时器。确保设置得够高,否则高负载下定时器可能不准。如果回调函数逻辑稍微复杂,记得去把调大一点。
2025-12-11 08:55:36
646
原创 freertos学习笔记11--个人自用-第15章 任务通知(Task Notifications)
想象一下,在 FreeRTOS 的世界里,每一个任务 (Task)都是一个独立的“工人”。在传统的通信方式(如队列、信号量)中,如果工人 A 想给 工人 B 发消息,他们需要通过一个中间的公共信箱(队列对象)。A 把信放进公共信箱。B 去公共信箱取信。而在任务通知中,每个工人(任务)随身自带了一个私人的“小口袋”(这就是任务控制块 TCB 中的一个 32位变量)。工人 A 不需要找公共信箱,直接把东西塞进 工人 B 的“小口袋”里,或者拍一下 B 的肩膀。
2025-12-11 08:55:16
1045
原创 freertos学习笔记10--个人自用-第14章 事件组(event group)
在 FreeRTOS 中,同步点通常被称为“汇合点” (Rendezvous)。是什么意思?WaitBits(AND模式) 和Sync不都是“等人齐”吗?有什么区别?
2025-12-10 22:12:54
682
原创 关于git使用 ---个人笔记自用
一:网络问题导致clone失败打开自己的科学工具,查看端口设置完后,再次尝试运行git clone命令。二:克隆git clone三:编辑本地文件进行删除或增加内容(要先登录,问AI或者自己查)你需要做的是。
2025-12-10 11:19:56
335
原创 FreeRTOS 第十三章 互斥量大纲
互斥量是 FreeRTOS 资源保护的基石。理解“所有权”和“优先级继承”是掌握它的关键。拿锁要判空,用完必释放,中断不能用,占锁别太久。
2025-12-08 11:35:53
626
原创 freertos学习笔记9--个人自用-第13章 互斥量(mutex)
信号量类型核心作用典型生活例子操作逻辑计数型资源管理停车场、电影票有票就进,没票排队计数型事件计数生产流水线生产一个+1,消费一个-1二进制同步/通知裁判发令枪枪响(Give),运动员跑(Take)二进制互斥(锁)公用电话亭我用时你别进(注:建议改用Mutex。
2025-12-07 23:28:35
499
原创 freertos学习笔记8--个人自用-第12章 信号量(semaphore)
/ 定义信号量句柄// 在 main 或初始化中创建二进制信号量在任务中使用在ISR中使用givetake。
2025-12-07 23:27:17
1240
原创 freertos学习笔记7--个人自用-第11章 队列(queue) 2 中断队列
本文介绍了在中断服务程序(ISR)中使用FreeRTOS队列进行数据读写的实现方法。主要内容包括:1) 中断写队列的通用模板,通过xQueueSendFromISR将硬件数据(如串口接收、ADC转换结果)传递给任务;2) 中断读队列的应用场景,如DAC输出和串口发送;3) 三个典型应用实例:GPIO按键检测、串口接收和定时器采样;4) 紧急插队机制xQueueSendToFrontFromISR的使用;5) 强调操作的核心三步:初始化唤醒标志、调用FromISR函数和强制上下文切换。
2025-12-06 23:37:49
317
原创 freertos学习笔记4--个人自用- 任务状态,空闲任务,钩子函数
在任意时刻,一个任务只能处于以下四种状态之一:使用 时要注意:任务执行时间不能超过周期时间空闲任务(Idle任务)的作用之一:释放被删除的任务的内存。除了上述目的之外,为什么必须要有空闲任务?一个良好的程序,它的任务都是事件驱动的:平时大部分时间处于阻塞状态。有可能我们自己创建的所有任务都无法执行,但是调度器必须能找到一个可以运行的任务:所以,我们要提供空闲任务。在使用vTaskStartScheduler()函数来创建、启动调度器时,这个函数内部会创建空闲任务:空闲任务的优先级为0,这意味着一旦某个用户
2025-12-04 20:38:44
457
原创 freertos学习笔记3--个人自用-9.3 任务优先级和Tick
FreeRTOS任务调度机制基于优先级和时间片轮转:数值越大优先级越高,高优先级任务可抢占低优先级任务,同优先级任务通过Tick中断实现时间片轮转。Tick作为系统"心跳"(通常1ms),维护时间计数并触发任务切换。任务优先级可通过uxTaskPriorityGet/vTaskPrioritySet动态修改,典型应用包括紧急任务提升、主从任务控制等。该机制确保了高优先级任务即时响应,同时通过时间片实现多任务公平调度。
2025-12-03 23:13:39
1094
原创 单片机原理及应用第八章--河海大学--考试自用
(如STB-选通信号,IBF-输入缓冲器满,ACK-应答信号,OBF-输出缓冲器满等)。适用于中断传送或查询式传送,可以方便地连接打印机等需要握手协议的设备。
2025-11-24 21:30:41
623
原创 单片机原理及应用第四章--河海大学--考试自用
C51编译器在头文件“REG51.H”中定义了全部sfr/sfr16和sbit变量。用一条预处理命令。
2025-11-23 21:09:38
232
原创 单片机原理及应用第二章--河海大学--考试自用
2.1 MCS-51单片机结构2.1 MCS-51单片机结构是的缩写,中文意思是 “51 单片机片内 RAM 的低 32 字节(地址 00H~1FH)被划分为CPU 同一时间只能使用其中一组的 R0~R7,而 RS1 和 RS0 的作用就是 “指定当前使用哪一组”。使用第0组寄存器(RS1=0, RS0=0)。当时,在进入中断服务程序前,先通过指令到第1组寄存器(例如,设置 RS1=0, RS0=1)。
2025-11-22 23:08:33
2042
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅