
STM32
文章平均质量分 79
来点光吧
这个作者很懒,什么都没留下…
展开
-
FreeRTOS系统 移植至STM32F4
FreeRTOS是一款专为嵌入式设备设计的开源实时操作系统,以轻量化、高可移植性和实时多任务调度为核心优势,适用于资源受限的微控制器(如ARM Cortex-M、RISC-V)。其内核支持抢占式任务调度、任务间通信(队列、信号量)及动态内存管理,通过Tickless模式优化功耗,广泛应用于物联网终端、工业控制和汽车电子等领域。下载好后解压可以看到如下内容Demo:官方给的工程历程Source: 文件夹里面包含的是FreeRTOS内核的源代码,我们移植FreeRTOS的时候就需要这部分源代码。原创 2025-05-13 10:24:35 · 823 阅读 · 0 评论 -
can总线通信协议
控制器局域网(Controller Area Network,CAN)是一种广泛应用于实时通信的串行总线协议,尤其在汽车电子和工业自动化领域。CAN通信协议是异步、半双工,串行通信协议。串行:数据按位发送半双工:可双向通信,但不能同时异步:无共享同步的时钟,依赖数据帧同步1.核心特点:多主结构:所有节点均可主动发送数据,通过仲裁机制避免冲突。非破坏性仲裁: 通过标识符(ID)优先级竞争总线使用权,低优先级节点主动退出发送高可靠性:错误检测:包含CRC校验、帧检查、ACK确认等机制。原创 2025-04-30 12:46:55 · 386 阅读 · 0 评论 -
SPI通信协议(STM32)
SPI(Serial Peripheral Interface)是一种同步、全双工、串行通信协议,广泛用于短距离芯片间通信,如微控制器与外设(传感器、存储器等)的连接。SPI跟iiC一样,同样是一主多从模式全双工:支持同时发送和接收数据。同步:有共享的时钟信号串行:双向数据串行发送和接收线,MOSIMISO1四线制:MOSI:主设备发送数据从设备接收数据MISO:从设备发送数据主设备接收数据SCLK:时钟信号线,由主设备产生SS/CS:从设备片选信号线。原创 2025-04-26 11:36:38 · 376 阅读 · 0 评论 -
IIC通信协议(STM32)
IIC(II(Inter-Integrated Circuit,I²C))是一种广泛使用的同步、半双工、串行通信协议,由飞利浦公司开发,主要特点是短距离,低速设备见得通信。支持多主多从架构,通过地址机制管理设备。串行:双向数据串行发送,SDA同步步:有共享的时钟信号,SCL半双工:支持两台设备和多台设备之间的相互通讯,不支持同时收发数据SDA:双向传输数据线SCL:产生时序的时钟线。原创 2025-04-26 02:00:00 · 1369 阅读 · 0 评论 -
USART串口通信协议(STM32)
UART:(Universal Asynchronous Receiver/Transmitter,通用异步收发器),异步、串行、全双工通信协议串行:数据串行发送异步:无共享的时钟信号全双工:支持同时收发数据点对点短距离通信:通常用于两个短距离的设备之间。原创 2025-04-25 17:27:50 · 307 阅读 · 0 评论 -
FreeRTOS 任务控制块是如何保留上下文的
当任务切换发生时,FreeRTOS会将当前任务的堆栈指针保存到该任务的TCB中,并从下一个任务的TCB中恢复堆栈指针,而任务对应的TCB会被分配到堆区。在FreeRTOS中,任务切换时上下文的保存包括核心寄存器的状态,这些内容保存在每个任务的堆栈中,而堆栈指针(SP)则存储在任务控制块(TCB)中。//任务优先级,指定任务的优先级,0的优先级最低。//链表指针,指向下一个队列。恢复新任务上下文:从任务堆栈中恢复该任务的寄存器状态到CPU中,程序计数器(PC)被设置为任务执行中断时的指令地址,任务继续运行。原创 2024-10-14 20:13:03 · 859 阅读 · 0 评论 -
FreeRTOS Cortex M3/4架构芯片——寄存器组与存储篇
作用:在内核刚启动时,OS处于hander mode(也就是操作系统常说的内核态),OS的内核函数(例如异常中断函数、其他中断函数等其他内核函数)使用的是MSP堆栈指针,当芯片启动成功,且未产生任何异常,os自动切换为线程模式,堆栈值指针选为PSP。裸机中,当程序正在函数1时,此时调用到函数2,此时函数1会被装载在栈区,函数2会从ROM装载进寄存器中运行,装载时函数1的堆栈地址会储存在寄存器LR中,这样函数2运行结束时就能通过访问LR寄存器的指针,返回到函数1继续运行。而任务堆栈指针,只能指向任务堆栈。原创 2024-10-09 10:33:52 · 1575 阅读 · 0 评论