草庐IT

Phytium-FreeRTOS

全部标签

FreeRTOS信号量 基于STM32

目录概述一、信号量基本概念1.二值信号量2.计数信号量3.互斥信号量4.递归信号量二、二值信号量运作机制三、计数信号量运作机制四、常用信号量函数接口讲解1.创建二值信号量xSemaphoreCreateBinary()2.创建计数信号量xSemaphoreCreateCounting()3.信号量删除函数vSemaphoreDelete()4.信号量释放函数4.1xSemaphoreGive()(任务)4.2xSemaphoreGiveFromISR()(中断)五、信号量获取函数5.1xSemaphoreTake()(任务)5.2 xSemaphoreTakeFromISR()(中断)六、二值

使用STM32CubeMX+freeRtos+MDK开发平衡小车(第一篇)

目录一、STM32CubeMX安装二、创建项目三、开启时钟配置外设 3.1配置时钟3.2配置USART1  3.3配置SYS  3.4freertos配置和任务添加四、代码生成4.1重写串口程序并通过软件调试进行测试4.1调试程序一、STM32CubeMX安装    这是我第一次做开源项目,因为某些原因需要学习FreeRtos的知识,在自己学习的同时,也记录一下过程和开发的心得,读者共勉,有不足的地方希望大家可以指出来,相互学习。    要使用FreeRTOS当然可以通过移植源码,创建任务的方式去做,事在人为,我选择用CubeMX的原因还是觉得这个工具在初始化一些硬件和创建进程是比较便捷的,用

FreeRTOS教程7 事件组

1、准备材料正点原子stm32f407探索者开发板V2.4STM32CubeMX软件(Version6.10.0)KeilµVision5IDE(MDK-Arm)野火DAP仿真器XCOMV2.6串口助手2、学习目标本文主要学习FreeRTOS事件组的相关知识,包括事件组概述、事件组特征、创建事件组、操作事件组、删除事件组等知识3、前提知识3.1、什么是事件组?事件组(eventgroup)也是FreeRTOS中另外一种进程间通信技术,事件组适用于多个事件触发一个或多个任务运行,可以实现事件的广播,还可以实现多个任务的同步运行,如下所述事件组允许任务等待一个或多个事件的组合事件组会解除所有等待同

FreeRTOS教程6 互斥量

1、准备材料正点原子stm32f407探索者开发板V2.4STM32CubeMX软件(Version6.10.0)KeilµVision5IDE(MDK-Arm)野火DAP仿真器XCOMV2.6串口助手2、学习目标本文主要学习FreeRTOS互斥量的相关知识,包括优先级翻转问题、优先级继承、死锁现象、创建/删除互斥量和获取/释放互斥量等知识3、前提知识3.1、优先级翻转问题使用二值信号量用于进程间同步时可能会出现优先级翻转的问题,什么是“优先级翻转”问题呢?考虑如下所述的任务运行过程在t1时刻,低优先级的任务TaskLP切入运行状态,并且获取到了一个二值信号量BinarySemaphores在

FreeRTOS教程5 信号量

1、准备材料正点原子stm32f407探索者开发板V2.4STM32CubeMX软件(Version6.10.0)KeilµVision5IDE(MDK-Arm)野火DAP仿真器XCOMV2.6串口助手一个滑动变阻器2、学习目标本文主要学习FreeRTOS信号量的相关知识,包括创建/删除信号量、释放信号量、获取信号量等知识3、前提知识3.1、信号量概述信号量是进程间用于通信的一种手段,其是基于队列实现的,信号量更适用于进程间同步,信号量包括二值信号量(BinarySemaphores)和计数信号量(CountingSemaphores)二值信号量就是只有一个项的队列,该队列不为空则为满(所谓二

FreeRTOS教程4 消息队列

1、准备材料正点原子stm32f407探索者开发板V2.4STM32CubeMX软件(Version6.10.0)KeilµVision5IDE(MDK-Arm)野火DAP仿真器XCOMV2.6串口助手2、学习目标本文主要学习FreeRTOS消息队列的相关知识,包括消息队列概述、创建删除复位队列、写入/读取数据到队列等关于队列的基础知识3、前提知识3.1、什么是消息队列?在一个实时操作系统构成的完整项目中一般会存在多个任务和中断,多个任务之间、任务与中断之间往往需要进行通信,FreeRTOS中所有的通信与同步机制都是基于队列来实现的,我们可以把队列结构想象成如下图所示样子在实际使用中,队列深度

STM32的串口FIFO发送和接收使用FreeRTOS实时操作系统

以下是一个带有串口接收中断的使用FreeRTOS和STM32的串口FIFO发送和接收程序的示例代码,包含了每个功能函数的详细实现:#include"stm32f10x.h"#include"FreeRTOS.h"#include"task.h"#include"queue.h"#defineUART_TX_BUFFER_SIZE128#defineUART_RX_BUFFER_SIZE128//串口发送和接收的队列句柄QueueHandle_txTxQueue;QueueHandle_txRxQueue;//串口发送任务的函数voidvUartTxTask(void*pvParameters)

FreeRTOS教程3 中断管理

1、准备材料正点原子stm32f407探索者开发板V2.4STM32CubeMX软件(Version6.10.0)KeilµVision5IDE(MDK-Arm)野火DAP仿真器XCOMV2.6串口助手2、学习目标本文主要学习FreeRTOS中断管理的相关知识,包括系统硬件中断、FreeRTOS可管理的中断、中断屏蔽和一些其他注意事项等知识3、前提知识3.1、STM32的硬件中断根据STM32CubeMX教程4EXTI按键外部中断实验“3、中断系统概述表”小节内容可知STM32F4系列有10个系统中断和82个可屏蔽的外部中断嵌套向量中断控制器(NVIC)采用4位二进制数表示中断优先级,这4位二

FreeRTOS 低功耗模式设计 STM32平台

1.STM32F105RBT6的三种低功耗模式1.1sleep睡眠模式、stop停机模式、standby待机模式1.2STM32中文参考手册有介绍STM32低功耗模式的介绍2.FreeRTOS采用的是时间片轮转的抢占式任务调度机制,其低功耗设计思路一般是:①当运行空闲任务(IDLE任务)的时候就进入低功耗模式②在合适的时机,通过中断或者外部事件再唤醒MCU,退出低功耗模式③对于STM32系列单片机而言,systick时间片如果设置的是1ms,那么每隔1ms会将产生一个系统中断,可能会将MCU从低功耗模式唤醒,如果MCU频繁的进入、退出lowpowermode,MCU无法进入深度睡眠deepsl

【一站式教程】精通ESP32:使用VSCode与PlatformIO构建FreeRTOS项目、WIFI网页智能灯控系统、蓝牙、有趣的小功能 — 从轻松入门到项目实战~

网上那么多教程~没有一个本喵喜欢的,那本喵就自己做一个吧🌟【一站式教程】精通ESP32:使用VSCode与PlatformIO构建FreeRTOS项目、WIFI网页智能灯控系统、蓝牙、有趣的小功能—从轻松入门到项目实战📚目录🎉简介🔍ESP32概述✨为什么选择FreeRTOS🚀VSCode与PlatformIO的优势📦准备工作💻安装VSCode🔌安装PlatformIO插件🛠配置环境🔑基础知识📚FreeRTOS基础🔧ESP32硬件概览🚀第一个FreeRTOS项目🎯创建项目📂工程结构解析🎓简单任务创建⬆️编译与上传🚧ESP32特定功能探索📡WiFi功能实现,项目实战一个网页智能灯控系统🔵蓝牙功能实