- 博客(19)
- 资源 (1)
- 收藏
- 关注
原创 FreeRTOS的学习记录(中断管理)
在实时操作系统中,中断是一种重要的机制,用于处理紧急事件,确保系统能够及时响应外部或内部的突发状况。FreeRTOS 作为一款广泛应用的实时操作系统,其中断管理机制设计精巧,既保证了中断处理的高效性,又与任务调度系统深度融合,确保整个系统的实时性和稳定性。FreeRTOS 的中断管理主要涉及中断优先级的设置、中断服务例程(ISR)的编写规范,以及中断与任务之间的交互方式。通过合理配置和使用这些特性,开发者能够充分发挥硬件性能,实现复杂的实时应用。
2025-05-18 15:57:02
1382
1
原创 FreeRTOS的学习记录(任务创建,任务挂起)
首先需要在中配置堆内存大小:FreeRTOS 提供了 5 种堆内存管理方案(~),默认使用,它支持内存块的分配和释放,且能避免内存碎片。定义一个符合 FreeRTOS 要求的任务函数:3. 动态创建任务使用函数创建任务:4. 启动调度器所有任务创建完成后启动调度器:2静态任务创建 (空闲任务内存分配是必须的,定时器是可选的)1. 配置FreeRTOSConfig.h在工程中修改文件,启用静态内存分配:2. 实现内存回调函数在中添加以下函数,为FreeRTO
2025-05-17 20:06:37
1106
原创 FreeRTOS的学习记录(基础知识)
FreeRTOS 是一个开源的实时操作系统(RTOS),专为嵌入式系统设计。它提供了任务管理、时间管理、信号量、消息队列、内存管理等功能,适用于资源受限的微控制器。FreeRTOS 是一个开源的实时操作系统内核,广泛应用于嵌入式系统中。其任务调度机制是其核心功能之一,确保多个任务能够高效、有序地运行。
2025-05-12 17:32:16
800
原创 FreeRTOS学习记录(变量命名规则全解、文件介绍)
前缀宏定义的文件port(举例,portMAX_DELAY)portable.htask(举例,taskENTER_CRITICAL ())task.hpd(举例,pdTRUE)projdefs.hconfig(举例,configUSE_PREEMPTION)err(举例,errQUEUE_FULL)projdefs.h宏实际的值pdTRUE1pdFALSE0pdPASS1pdFAIL0内核基础相同:FreeRTOS Plus 基于 FreeRTOS 开源内核构建。
2025-05-12 16:55:59
1156
原创 从STM32最小系统入门嵌入式的学习记录(RTC时钟)
在嵌入式系统领域,实时时钟(RTC)如同系统的 “时间管家”,其重要性不言而喻。在工业自动化场景中,RTC 能为设备运行数据添加精确时间戳,方便后续故障追溯与数据分析;智能家居设备借助 RTC 实现定时开关、预约任务等功能。而 STM32 最小系统作为探索 STM32 单片机功能的起点,由电源电路、晶振电路、复位电路等核心部分构成。电源电路为芯片提供稳定电压;晶振电路为芯片工作提供时钟信号;复位电路则能在系统异常时恢复到初始状态,它们共同为 RTC 功能的实现搭建起稳定平台。。
2025-05-07 21:45:39
1400
原创 从STM32最小系统入门嵌入式的学习记录(DMA)
比如在 ADC 数据采集时,若没有 DMA,CPU 需要不断读取 ADC 寄存器的数据,而有了 DMA,CPU 只需在数据传输完成后进行处理,期间可以执行其他任务,这显著提高了系统的整体运行效率。在上述代码中,首先完成 ADC 的初始化配置,然后进行 DMA 通道的配置,将 ADC 的数据寄存器作为数据源,内存数组作为目标存储区域,配置为循环模式,以便持续采集数据。STM32 的 DMA 控制器包含多个通道,每个通道可以配置用于不同的外设数据传输,如 ADC、SPI、I2C 等。
2025-04-20 22:20:37
682
原创 从STM32最小系统入门嵌入式的学习记录(ADC)
例如,将 PA0 引脚配置为模拟输入模式,使得连接到 PA0 的电位器输出的模拟电压信号能够顺利地输入到 ADC1 的通道 0 进行转换。ADC 转换后的数字数据可以采用左对齐或右对齐的方式存储。在右对齐方式下,转换结果的低 12 位(对于 12 位分辨率的 ADC)包含了有效的转换数据,高 4 位为 0。不使用外部触发转换,而是采用软件触发,能让开发者根据程序的需求灵活控制转换的启动时间。对于 12 位分辨率的 ADC,转换结果的范围是 0 - 4095,这个数字值对应着输入模拟信号的幅值。
2025-04-17 22:02:18
699
原创 从STM32最小系统入门嵌入式的学习记录(TIM输入捕获,TIM编码)
TIM(Timer,定时器)输入捕获是 STM32 等微控制器中定时器的一个重要功能,它可以用来测量脉冲信号的频率、周期、脉宽等参数。下面为你详细解释 TIM 输入捕获的原理、配置步骤以及应用场景。
2025-04-17 16:51:27
538
原创 从STM32最小系统入门嵌入式的学习记录(TIM输出比较,舵机,电机)
输出比较模式下,定时器会将计数器(CNT)的值与预定义的比较值(CCR,捕获 / 比较寄存器)进行比较。当计数器的值等于比较值时,会根据设定的输出比较模式对输出引脚的电平进行操作。每个高级定时器和通用定时器都拥有4个输出比通道高级定时器的前3个通道拥有死区生成和互补输出功能是指在互补输出信号切换时,特意设置的一段两路信号都为低电平的时间间隔。引入死区的目的在于防止上下桥臂的功率开关管同时导通,避免出现直通现象,从而保护功率开关管和电路。
2025-04-13 21:12:56
1050
原创 从STM32最小系统入门嵌入式的学习记录(TIM基本知识,TIM中断)
内部时钟(CK_INT)时钟路径与原理:在 STM32 微控制器内部,系统时钟(SYSCLK)通常由高速外部时钟(HSE)、高速内部时钟(HSI)等经过锁相环(PLL)倍频等处理后得到。对于通用定时器,其内部时钟(CK_INT)来源于 APB 总线时钟。以 STM32F1 系列为例,当 APB1 总线的预分频系数为 1 时,通用定时器的内部时钟频率等于 APB1 总线时钟频率;
2025-04-07 23:09:13
987
原创 从STM32最小系统入门嵌入式的学习记录(EXIT中断)
EXTI 负责管理 STM32 的外部中断 / 事件线,可支持多达 23 个中断 / 事件线,其中包括 16 个 GPIO 引脚,以及其他如 PVD、RTC 闹钟等专用中断线。每个中断 / 事件线都可以独立配置触发模式(上升沿、下降沿或双边沿)、使能和屏蔽,还能通过软件模拟中断请求。。
2025-04-05 22:20:44
707
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅