- 博客(7)
- 收藏
- 关注
原创 FreeRTOS中如何让阻塞的高优先级任务快速响应
在 FreeRTOS 中,任务抢占机制是其实时性的核心特性之一,它基于优先级驱动的抢占式调度(Preemptive Scheduling)
2025-02-25 22:53:02
1185
原创 FreeRTOS中高优先级无法打断低优先级任务的原因
本文章以一个Demo工程为例来阐述在FreeRTOS工程中,系统不能从低优先级任务切换到高优先级任务的一些基本的原因。本工程设置了两个任务A和B任务A的优先级比任务B的优先级高任务A一直在等待任务通知(阻塞态),任务内容为置位标志位,然后进入死循环任务B的内容是在不断地循环中置位标志位,但从不进入阻塞使用按键触发外部中断,在外部中断的回调函数内向任务A发送任务通知设置四个标志位:分别为SysTick标志,用于标志系统时基(每1ms)任务A标志位,指示任务A在运行。
2025-02-25 20:41:05
1329
原创 嵌入式开发中PCM及WAV音频格式的简述与应用
PCM是"裸数据",WAV是"带说明书的盒子"在嵌入式音频开发中:WAV用于传输和识别 → PCM用于实际播放。
2025-02-18 21:34:38
667
原创 创建Freertos工程时出现“Source/CMSIS_RTOS_V2/freertos_os2.h(31): error: #13: expected a file name”的错误处理
当我们在CubeMX把框架切换成V1.8.5之后,cmsis_os2.c文件就不会包含这两个库文件,软件框架的不同就规避掉了这个问题。这行代码的作用是包含 CMSIS 设备头文件,但编译器找不到文件“CMSIS_device_header”在V1.8.6的版本框架中,根据编译器的错误提示可以定位到freertos_os2.h文件的如下位置。之后点击右上角的代码生成按钮更新程序并在Keil内进行编译即可。其中错误行就是出现在freertos_os2.h中。即使将这行代码注释也会有其他的错误出现。
2025-02-16 14:49:41
731
原创 基于STM32的GPIO电路解析
以芯片1为例,通常状态下PMOS被禁止使用,而NMOS也不驱动,那么在其芯片内部该引脚为悬空状态,电平由外部电路决定。假设芯片1打开了PMOS输出了高电平,而此时芯片2打开了NMOS输出低电平,那么就导致了芯片1的VDD和芯片2的VSS短路从而导致芯片烧毁。它的核心作用是将输入信号转换为干净、稳定的输出信号,特别适用于处理带有噪声或抖动的输入信号。如果是购买的开发板,无法更改外部电路的情况下,这个时候就可以使用内置的下拉电阻。当芯片1驱动NMOS时,接地,A点的电平为低电平,认为芯片1输出了低电平。
2025-02-15 13:35:43
1182
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人