FreeRTOS 3. 事件标志组
FreeRTOS事件标志组事件标志组就是所有任务共享的3个字节(24位),相当于一个全局的标志变量,事件组有两个功能:等待和同步。
1.等待 : 当在某个任务执行到等待函数xEventGroupWaitBits(,Bit1,,,)时,CPU会判断该函数里面需要等待的位(Bit1)是否被置为1。若没有该任务停止执行,直到其他任务将该位置为1后继续执行。 相当于使用一个if(Bit1)进行循环判断,但是如果使用if判断需要一直浪费CPU的资源,使用事件组就可以节约很多资源。但是事件组也有一些缺点,一个事件组有24位,在写代码的过程中,需要明确每一位代表的含义。一旦一不小心弄错各个位所代表的内容,很可能造成程序上的错误,另一方面在读代码时也可能会很费劲。
2.同步: 在实际的程序中,可能出现几个任务需要同时运行,事件组的同步功能就是同步各个任务执行的进度。实现的原理就是使用等待功能实现,只是换了几个函数的名字而已。
等待功能实现1. 创建事件标志组 Ⅰ. 首先引用头文件#include <freertos/event_groups.h> Ⅱ. 定义全局的事件 ...
FreeRTOS 2. 延时函数
延时函数vTaskDelay()1. 引用头文件12#include <freertos/FreeRTOS.h>#include <freertos/task.h>
2. 两种毫秒级延时函数的写法12vTaskDelay(pdMS_TO_TICKS(100)); //延时100msvTaskDelay(1000/portTICK_RATE_MS); //延时1000ms
FreeRTOS 1. 任务创建
FreeRTOS任务的创建1. 需要引用的头文件12#include <freertos/FreeRTOS.h> //这里面大小写都可以#include <freertos/task.h>
2. 使用函数 xTaskCreate()函数的具体参数如下:
1234567BaseType_t xTaskCreate( TaskFunction_t pvTaskCode, //创建任务的任务函数名称 const char * const pcName, //你要给任务起的名字 unsigned short usStackDepth, //任务所占堆栈空间的大小 void *pvParameters, //给任务传递的参数 UBaseType_t uxPriority, //任务优先级,数字越小越低 TaskHandle_t *pxCreatedTask //任务句柄 ); //记得加分号
3. 函数xTaskCreate()用法简介若传入参数为: xTaskCreate(Task1,"Task ...
ESP32 IDF 1. GPIO设置
GPIO操作是所有单片机最基础的操作最重要的操作 ,学会了对一款单片机GPIO的操作,那你就可以说自己入门了这款单片机。本篇文章将简要的介绍ESP32使用IDF进行编程时如何对GPIO进行操作。
1.GIPO初始化GPIO有两种配置方法:结构体配置法 和调用函数配置法。结构体配置法和STM32的GPIO配置比较像,使用起来比较简单。以下主要介绍结构体配置方法。
1. 引用头文件 #include <driver/gpio.h>
2. 定义结构体并给结构体赋初值
123456gpio_config_t ioConfig;//定义一个结构体,名称随便,这里使用ioConfigioConfig.pin_bit_mask = (1ull << 18)|(1ull < 19);//要配置的GPIO端口号,这里必须使用强制转化为1ull类型ioConfig.mode = ;//GPIO模式ioConfig.pull_up_en = ;//是否上拉ioConfig.pull_down_en = ;//是否下拉ioConfig.intr_type = ;//中断类型 ...
Staticly CDN 加速
Staticly CDN 加速
直接访问Github上的资源很慢,以此我们可以使用一些免费的CDN进行加速。Staticly CDN就是目前免费的CDN中比较好用的了,它的规则如下:
123456# 格式 其中 user是用户名 repo是仓库名 version代表版本(tag或者分支 默认为main) flie是文件路径https://cdn.staticaly.com/gh/user/repo@version/file#我的github的名字叫baiyddmy,我有一个仓库名叫Hexo_PostImage#我要加速Hexo_PostImage里面主分支里面的/image/background/Kiki.webp文件https://cdn.staticaly.com/gh/baiyddmy/Hexo_PostImage@main/image/background/Kiki.webp
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Run server1$ hexo server
More info: Server
Generate static files1$ hexo generate
More info: Generating
Deploy to remote sites1$ hexo deploy
More info: Deployment