- 博客(141)
- 收藏
- 关注
原创 20-FreeRTOS内存管理
动态方法创建:自动地从 FreeRTOS 管理的内存堆中申请创建对象所需的内存,并且在对象删除后,可将这块内存释放回FreeRTOS管理的内存堆静态方法创建:需用户提供各种内存空间,并且使用静态方式占用的内存空间一般固定下来了,即使任务、队列等被删除后,这些被占用的内存空间一般没有其他用途。动态方式管理内存相比与静态方式,更加灵活。
2025-09-07 12:54:15
298
原创 19-Tickless低功耗模式
答:很多应用场合对于功耗的要求很严格,比如可穿戴低功耗产品、物联网低功耗产品等;一般MCU都有相应的低功耗模式,裸机开发时可以使用MCU的低功耗模式。FreeRTOS也提供了一个叫Tickless的低功耗模式,方便带FreeRTOS操作系统的应用开发。
2025-09-07 12:54:03
325
原创 18-FreeRTOS软件定时器
答:定时器:从指定的时刻开始,经过一个指定时间,然后触发一个超时事件,用户可以自定义定时器周期。硬件定时器:芯片本身自带的定时器模块,硬件定时器的精度一般很高,每次在定时时间到达之后就会自动触发一个中断,用户在中断服务函数中处理信息。软件定时器:是指具有定时功能的软件,可设置定时周期,当指定时间到达后要调用回调函数(也称超时函数),用户在回调函数中处理信息。单次定时器:单次定时器的一旦定时超时,只会执行一次其软件定时器超时回调函数,不会自动重新开启定时,不过可以被手动重新开启。
2025-09-07 12:53:38
207
原创 17-FreeRTOS任务通知
答:任务通知API函数主要有两类:1-发送通知,2-接收通知。注意:发送通知API函数可以用于任务和中断函数中,但接受通知API函数只能用在任务中。
2025-09-07 12:53:22
322
原创 16-FreeRTOS事件标志组
答:事件标志位:用一个位,来表示事件是否发生。事件标志组是一组事件标志位的合集,可以简单的理解事件标志组,就是一个整数。
2025-09-07 12:52:33
253
原创 15-FreeRTOS队列集
一个队列只允许任务间传递的消息为同一种数据类型,如果需要再任务间传递不同数据类型的消息时,那么就可以使用队列集!!!作用:用于对多个队列或信号量进行“监听”,其中不管哪一个消息到来,都可让任务退出阻塞状态。
2025-09-06 16:18:33
101
原创 14-FreeRTOS信号量
答:信号量是一种解决同步问题的机制,可以实现对共享资源的有序访问。假设有一个人需要在停车场停车。空车位:信号量资源数(计数值)让出占用车位: 释放信号量(计数值++)占用车位: 获取信号量(计数值–)首先判断停车场是否还有空车位(判断信号量是否有资源)。停车场正好有空车位(信号量有资源),那么就可以直接将车开入停车位进行停车(获取信号量成功)。
2025-09-06 16:08:50
413
原创 13-FreeRTOS消息队列
答:消息队列是任务到任务、任务到中断、中断到任务数据交流的一种机制(消息传递)。/* 存储区域的起始地址 *//* 下一个写入的位置 */union} u;/* 等待发送列表 *//* 等待接收列表 *//* 非空闲队列项目的数量 *//* 队列长度 *//* 队列项目的大小 *//* 读取上锁计数器 *//* 写入上锁计数器 *//* 其他的一些条件编译 */} xQUEUE;/* 存储区的结束地址 *//* 最后一个读取队列的地址 *//* 互斥信号量持有者 */
2025-09-06 15:51:08
622
原创 12-FreeRTOS时间管理
答:FreeRTOS有两种延时函数:相对延时函数 和 绝对延时函数。注意:一般来说,绝对延时中的主体任务运行所需时间必须比绝对延时时间小。
2025-09-06 15:34:34
249
原创 11-FreeRTOS任务相关的其他API函数
答:答:此函数用于获取指定任务的任务优先级,使用该函数需要将宏 INCLUDE_uxTaskPriorityGet 置1。函数参数:函数返回值:答:此函数用于改变某个任务的任务优先级,使用该函数需将宏 INCLUDE_vTaskPrioritySet 为 1 。函数参数:答:此函数用于获取系统中任务的任务数量。函数返回值:答:此函数用于获取系统中所有任务的任务状态信息,使用该函数需将宏 configUSE_TRACE_FACILITY 置 1。函数参数:函数返回值:参数成员pxTaskStatusA
2025-09-06 15:30:29
316
原创 10-FreeRTOS时间片轮询
答:同等优先级任务轮流享有相同的CPU时间(可设置),叫时间片,在FreeRTOS中,一个时间片就等于SysTick中断周期。首先Task1运行完一个时间片后,切换至Task2运行。Task2运行完一个时间片后,切换至Task3运行。Task3运行过程中(还不到一个时间片),Task3阻塞了(系统延时或等待信号量等),此时直接切换到下一个任务Task1.Task1运行完一个时间片后,切换Task2运行。同等优先级任务,轮流执行,时间片流转。一个时间片大小,取决为滴答定时器中断频率。
2025-09-06 15:05:49
161
原创 09-FreeRTOS任务调度
答:用于初始化启动第一个任务前的环境,主要是重新设置MSP指针,并使能全局中断,最后触发SVC中断。答:程序在运行过程中需要一定的栈空间来保存局部变量等信息。主堆栈指针(MSP):它是给OS内核、异常服务程序以及所有需要特权访问的应用程序代码来使用的。进程堆栈指针(PSP):用于常规的应用程序代码(不处于异常服务程序中时使用)。在FreeRTOS中,中断使用MSP(主堆栈),中断以为使用PSP(进程堆栈)。注意:在RTOS中是使用双堆栈指针(即使用MSP和PSP),但在裸机中是只使用MSP(主堆栈)
2025-09-06 15:04:03
700
原创 08-FreeRTOS列表和列表项
答:列表项就是存放在列表中的项目。在结构体中,包含两个宏(listFIRST_LIST_INTEGRITY_CHECK_VALUE 和 listSECOND_LIST_INTEGRITY_CHECK_VALUE),这两个宏是确定的已知常量,FreeRTOS通过检查这两个常量的值,来判断列表的数据在程序运行过程中,是否遭到破坏,该功能一般用于测试,默认是不开启的(我们一般不用去理会)。成员uxNumberOfltems,用于记录列表中的列表项的个数(不包括xListEnd)。
2025-09-06 14:51:16
483
原创 07-任务调度器的挂起和恢复
答:使用格式示范:答:答:调用一次挂起调度器,该变量uxSchedulerSuspended就加一 ,变量uxSchedulerSuspended的值,将会影响Systick触发PendSV中断,即影响任务调度。答:调用一次恢复调度器,该变量uxSchedulerSuspended就减一 ,如果uxSchedulerSuspended等于0,则允许调度 。
2025-09-06 14:29:31
162
原创 06-FreeRTOS临界段代码保护
答:临界段代码也叫临界区,是指那些必须完整运行,不能被打断的代码片段。运行时临界段代码时需要关闭中断,当处理完临界段代码以后再打开中断。答:答:中断、任务调度。答:任务级临界区调用格式示例:中断级临界区调用格式示例:答:
2025-09-06 14:26:55
86
原创 05-FreeRTOS中断管理简介
答:让CPU打断正常运行的程序,转而去处理紧急的事件(程序),就叫中断。答:ARM Cortex-M 使用了8位宽的寄存器来配置中断的优先等级,这个寄存器就是中断优先级配置寄存器。但STM32只用了中断优先级配置寄存器的高4位[7:4],所以STM32提供了最大16级(0~15)的中断优先等级。答:STM32的中断优先级可以分为抢占优先级和子优先级。抢占优先级:抢占优先级的中断可以打断正在执行但抢占优先级低的中断。子优先级:当同时发生具有相同抢占优先级的两个中断时,子优先级数小的优先执行。
2025-09-06 14:22:37
442
原创 04-FreeRTOS的任务挂起与恢复
答:任务挂起函数用于挂起任务,使用时需要将将FreeRTOSConfig.h文件中宏INCLUDE_vTaskSuspend配置为1。无论优先级如何,被挂起的任务都将不再被执行,直到任务被恢复。注意:当传入的参数是NULL,则代表挂起任务自身(当前正在运行的任务)。答:使用该函数时需要将FreeRTOSConfig.h文件中宏INCLUDE_vTaskSuspend配置为1。
2025-09-06 14:14:37
312
原创 03-FreeRTOS任务创建和删除
答:任务栈栈顶,在任务切换时的任务上下文保存、任务恢复息息相关。每个任务都有属于自己的任务控制块,类似身份证。答:临界区保护,保护那些不想被打断的程序段,关闭freertos所管理的中断,中断无法打断,滴答中断和PendSV中断无法进行不能实现任务调度。
2025-09-06 13:04:41
615
原创 01-FreeRTOS基础知识
答:同等优先级任务轮流享有相同的CPU时间(可设置),叫做时间片,在FreeRTOS中,一个时间片等于SysTick中断周期。
2025-09-06 11:21:18
532
原创 AD中常用快捷键
● R+L 输 出 PCB 中 所 有 网 络 的 布 线 长 度● Ctrl+左 键 点 击 对 正 在 布 的 线 完 成 自 动 布 线 连 接● M+G 可更改铜的形状● 按 P+T 在布线状态下,按 Shift+A 可直接进行蛇线走线● T+R 对已布完的线进行蛇线布线● E++M+C 点击空白出可迅速找到 PCB 上想要的元件● Backspace 撤销正在布线的上一步操作● 切换布线层,可在布线过程中放置过孔● Ctrl+Shift 切换层并放置过孔● F8/E+O+S 设置
2025-09-03 10:06:20
530
原创 常用元器件
本文所介绍得电子设计常用元器件,即为分立元件。分立元件(Discrete Components)是指那些单独的、非集成的电子元件,它们通常用于构建电子电路和系统。分立元件包括电阻器、电容器、电感器、二极管、晶体管、光耦合器、继电器等。它们在电路设计中扮演着重要的角色,可以根据特定的需求进行选择和组合,以实现电路的特定功能。三极管(Transistor)是一种具有三个控制电极的半导体器件,它能够放大电信号或用作开关。
2025-08-27 10:23:20
546
原创 simpread-电子设计入门教程硬件篇之运算放大器(三)_运算放大器减法器 - CSDN 博客
运算放大器(Operational Amplifier,简称 OP-AMP)是一种电子放大器,它具有很高的输入阻抗和很低的输出阻抗,增益极高,通常用于信号处理电路中,如放大、滤波、信号转换等。运算放大器有两个输入端,分别是同相输入端(正输入端)和反相输入端(负输入端),以及一个输出端。在上古时期,人类使用电子管来放大信号;在象牙塔小组研究出晶体管(三极管)后,半导体器件迅速发展,出现了半导体收音机,电路体积大大缩小。
2025-08-27 10:21:02
246
原创 simpread-电子设计入门教程硬件篇之集成电路 IC(二)_集成电路硬件 - CSDN 博客
集成电路(Integrated Circuit,IC)是一种将大量的电子元件(如晶体管、二极管、电阻器、电容器等)集成在单个半导体芯片上的微型电子器件。集成电路的发明是电子技术发展史上的一个重要里程碑,它极大地提高了电子设备的性能、降低了成本、缩小了体积、简化了设计和生产过程。集成电路的分类模拟集成电路:处理模拟信号的集成电路,如运算放大器、比较器、模拟乘法器等。数字集成电路:处理数字信号的集成电路,包括逻辑门、触发器、计数器、微处理器等。混合信号集成电路。
2025-08-27 10:15:30
411
原创 嘉立创EDA快捷键汇总
原文地址:https://prodocs.lceda.cn/cn/introduction/hotkeys/index.html。
2025-08-23 14:32:23
815
原创 自定义单线通信协议解析
接收端在接收到数据后,根据接收到的数据重新计算CRC校验码,并与接收到的CRC校验码进行比较,如果两者一致,则认为数据正确,否则认为数据出错并进行相应的处理,如请求重传等。对于重要的数据,可以采用重复传输的方式,即发送端将同一数据多次发送,接收端根据多次接收到的数据进行比对和判断,从而提高数据的可靠性。在硬件层面,可以对单线信号进行滤波处理,如采用低通滤波器、带通滤波器等,滤除信号中的高频干扰成分,从而降低干扰对数据传输的影响。此外,还可以采用差分信号传输方式,通过差分信号的特性来提高信号的抗干扰能力。
2025-08-22 18:38:55
850
原创 (矽力杰)JW5026 SOT23-6 40V_1A,1.1MHz 同步降压转换器 DC-DC 电源芯片
JW5026 保证了短路保护、热保护、电流损耗保护和电压锁定下的输入的鲁棒性。JW5026 有 6 针 SOT23-6 包,它提供了一个紧凑的解决方案与最小的外部组件。JW5026 是一个电流模式的单片降压开关调节器。JW5026 的输入范围为 4.7V~40V,提供两个集成的 n 通道连续输出电流。它将输入电压从 4.7V 到 40V 降至低至 0.8V 的输出电压,并能够提供高达 1A 的负载电流。它将输入电压从 4.7V 到 40V 降至低至 0.8V 的输出电压,并能够提供高达 1A 的负载电流。
2025-08-21 09:21:19
185
原创 sx1308 可调升压电路图
原文地址SX1308 是一颗,可以实现低压输入高压输出。应用在升压电路中。下面介绍 SX1308 的电气参数和电路图。
2025-08-21 09:04:35
332
原创 一文秒懂光耦的原理及作用(附带基本电路结构)
光耦是每个工程师 100% 都要遇见的 所以请务必要学习并且掌握下来 希望这篇文章对您的学习有所帮助光耦是一种实现信号隔离的元器件,通常用于各部分电路之间,使其不互相受到影响。下图为光耦的实物图以及原理图(图片均下载于立创商城)以上是我对光耦学习之后的总结,如有知识点未提及,欢迎各位老大在评论区补充。若本篇文章对您有帮助,那么希望可以得到您的一键三连。满怀希望,就会所向披靡。
2025-08-19 09:25:26
929
原创 全面认识二极管,一篇文章就够了
二极管作为最基础的晶体管,在电子电路应用中无所不在,博主在电路小课堂专栏里面的电路总结,不管是电平转换电路,电源自动切换电路,防反接电路,都有二极管的影子。虽然二极管很基础,相对其他晶体管来说它是简单的,但是他的种类繁多,不同的类型应用场景也不相同,那么在我们平时电路设计上如何选择合适的二极管,以及了解不同种类的二极管的应用场景就很重要了。那么既然要说,那么博主肯定是老样子,不将就!给它整到位了,从原理到应用一网打尽。
2025-08-18 13:03:04
814
原创 MOS 管工作原理(通俗易懂)
MOS 管是电子世界用途极为广泛的一个器件,是我们成为硬件工程师必须学习的一个器件。博主想通过这篇文章将 MOS 的原理和应用复习一下,同时记录一下自己对于 MOS 管的新理解。
2025-08-15 17:24:53
951
原创 三极管工作原理详解
考虑到本篇文章受众是硬件新手,所以不考虑 0.7V 的 BE 压降, 实际是 B 大于 E 0.7V 以上是高电平,B 小于 E 0.7V 以上才是低电平。这里的 0.7V 是三级管制造工艺导致的压降。基极是控制端,根据三极管种类是 NPN 还是 PNP,来给基极高电平或者低电平,那么三极管的 CE 两极就会导通。两种,如图,箭头朝外是 NPN,箭头朝内是 PNP,这个一般看多了就记住了。所以判断三极的关键就是通过箭头来判断发射极,(虽然不够严谨,但是我都是这么做)。如上图,不管是 N 管还是 P 管,
2025-08-15 09:20:17
421
原创 RTX5 | 配置文件RTX_Config.h
使用RTX5开发项目之前,一定要先把RTX5系统配置文件RTX_Config.h弄明白。RTX_Congig.h包含以下内容:System Configuration(非常重要)Thread Configuration(非常重要)Timer Configuration(简单)Event Flags Configuration(简单)Mutex Configuration(简单)Semaphore Configuration(简单)
2025-06-21 16:32:47
1071
原创 RTX5 | 时间延时
RTX5提供两种延时函数:相对延时osDelay()和绝对延时osDelayUntil()。相对延时从调用时刻开始计算延时时间,简单易用但存在累积误差;绝对延时基于系统启动后的总节拍数,能实现更精确的周期性任务。在高优先级线程或中断影响下,两种延时都可能被推迟执行,但绝对延时能自动补偿时间波动。对比表格显示,osDelay()适用于低精度任务如LED闪烁,而osDelayUntil()更适合PWM控制等需要高精度的场景。文中还详细说明了两个函数的参数、返回值和使用示例。
2025-06-21 10:10:41
1036
原创 keil MDK 中使用虚拟串口调试串口
在弹出的option菜单中,选择debug菜单,按下图所示,选择2处为使用仿真模式。2 parameter需要改成 -pSTM32F103C8 (这个参数是根据不同的芯片改写的)1 dialog dll 要改成DARMSTM.DLL,
2025-02-13 15:29:01
1367
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人