Freertos学习笔记(五)二进制信号量 计数型信号量 Mutex互斥量 递归互斥量
第十四课 二进制信号量#include "freertos/semphr.h" xSemaphoreCreateBinary();SemphoreHandle_t Handle;//二进制信号量Handle = xSemaphoreCreateBinary();//创建xSemaphoreGive(Handle);//释放在任务中:xSemaphoreTake(Handle
第十四课 二进制信号量#include "freertos/semphr.h" xSemaphoreCreateBinary();SemphoreHandle_t Handle;//二进制信号量Handle = xSemaphoreCreateBinary();//创建xSemaphoreGive(Handle);//释放在任务中:xSemaphoreTake(Handle
第十一课 队列集合多个Task写队列数据,一个Task读取队列数据 Queue Set新建两个消息队列,句柄给两个发送函数,新建一个QSet句柄,使用xQueueAddToSet分别添加两个消息队列到Qset,在接收函数中,算了···这个是用的时候看教程吧第十二课 队列邮箱Queue Mainbox与队列集合相反,一个写,多个读邮箱是保持数据,发送方会覆盖数据,接收方不能移除数据,所有函数使用一个
第八课 Task看门狗中断看门狗:在任务中代码运行时间过长,会触发中断看门狗,中断看门狗使用的是定时器一,需要配置interrupt watchdog 与进行初始化任务看门狗:针对任务,也可以重启整个系统。默认监控idle_task 5s 如果将任务优先级确定到0,则不会触发看门狗,因为与idle任务具有相同的优先级,idle可以持续运行不会造成看门狗触发添加自定义看门狗 添加头文件"esp_ta
看到B站很多大佬都在单片机上运行flappy bird小游戏,自己也想试一试,顺便提升自己的编程思路! 开发平台:platform平台(不得不说这是一个好东西)+Arduino框架 硬件:ESP32、ILI9341 编程思路: 新建水管结构体,包含水管参数与水管更新删
1、#include<cmath> #include<cstdio> 用这种方法来调用C语言中的函数2、namespace 名字空间,防止命名重复::叫做限定调用符using namespace X :引入整个名字空间using X:: name 使用单个名字X::name 在程序中加上名字空间前缀3、#include<iostream>using names
我们在大学课程上学习单片机时,会使用一个叫做Keil的工具,完成代码的编辑之后,可以通过点击几个按钮来选择编译,编译并且生成固件,重新编译并且生成固件,这三个是我们最常用的按钮,当时在上课时,很多老师并不会讲清楚三个按钮被点击后具体执行的过程,玩单片机也有两三年,今天大概谈一谈自己的理解。举例几个常用的编辑器:1、适用于x86的:gcc2、适用于arm-linux的:arm-linux-gnuea
以下笔记基于esp32-idf第四课 任务的优先级优先级数值为0~MAX-1 MAX=25如果设定超过最大值,则默认为最大值,设定最大值时最大不能超过32,优先级越大优先级越高,但是并不是越大越好,在某些情况下可能会阻塞其他任务运行,导致其他任务运行不了使用uxTaskPriorityGet获得优先级,传入参数为任务句柄。相同优先级的任务共享相同时间片,谁先创建谁运行不同优先级运行优先级别高的任
本freertos笔记基于esp32-idf开发第一课 系统启动流程第一阶段 bootloader第二阶段 bootloader第三阶段 应用程序入口在components文件夹下有bootloader两个阶段的源代码、也有freertos的源代码 启动流程://esp_system ENTRY(call_start_cpu0) SYS_START_FN g_startup_fn start_cp
在单片机上模拟重力小球硬件主控:esp32屏幕:ILI9341重力传感器:MPU6050软件屏幕驱动:#include <TFT_eSPI.h>MPU6050驱动:#include <MPU6050_tockn.h>要求可以实现屏幕上的小球跟随实际重力运行,并且具有释放回收区域,可以通过按键实现小球的增加与减少;程序设计使用链表新建小球: typedef struct Ba
linux系统目录结构:"/"意思为根目录,在此以自制的linux小电脑为例;根目录包含以下文件夹:dev、lib、linuxrc、media、opt、root、sbin、tmp、var、bin、etc、lib32、lost+found、mnt、proc、run、sys、usr /bin:存放最常使用的命令;/dev:存放Linux的外部设备,在linux中访问设备的方式与文件相同;/etc: