当前位置: 首页> 科技> 数码 > 企业门户网建设_软件开发做平台_seo怎么优化网站排名_百度一下就知道官方

企业门户网建设_软件开发做平台_seo怎么优化网站排名_百度一下就知道官方

时间:2025/7/14 3:54:31来源:https://blog.csdn.net/qq_43598101/article/details/144274202 浏览次数:0次
企业门户网建设_软件开发做平台_seo怎么优化网站排名_百度一下就知道官方

主要参考b站宸芯IOT老师的视频,记录自己的笔记,老师讲的主要是linux环境,但配置过程实在太多问题,就直接用windows环境了,老师也有讲一些windows的操作,只要代码会写,操作都还好,开发板用ESP-WROOM-32,其实坑还挺多的,慢慢来吧。

队列是任务间通信的主要形式,关于队列,主要有以下5个函数。

  • 第1个是队列创建函数xQueueCreate(),有2个参数
    ①是队列的总容量
    ②是队列中每个成员所占内存大小
    创建队列成功后会返回队列的句柄,后续对队列的读写操作都是通过队列句柄。
    在这里插入图片描述
  • 第2个是函数xQueueSend(),向队列头发送消息,有3个参数
    ①是队列句柄
    ②是要发送的消息指针,这里是将指针内容拷贝发送,而不是发送该指针
    ③是等待时间,超过等待时间后还没能成功发送将会返回FALSE
    在这里插入图片描述
  • 第3个是函数xQueueSendToBack,向队列尾部发送消息,和上一个函数基本一样,只是发送到尾部
    在这里插入图片描述
  • 第4个是函数xQueueReceive,从函数接收一条消息,有3个参数
    ①是队列句柄
    ②是接收消息缓冲区指针
    ③是等待时间,超时就会返回FALSE
    在这里插入图片描述
  • 第5个是函数xQueueSendFromISR,xQueueSend 的中断版本,带ISR的函数都是中断版本,只能在中断处理函数中执行,有3个参数。
    ①是队列句柄
    ②是消息指针
    ③是指出是否有高优先级的任务被唤醒,此参数的意思是,假如当前使用队列的任务A优先级是3,等待队列的任务B优先级是4,此时发生了中断,此函数发现高优先级的任务B就绪了,在中断结束后会手动调度,执行任务B以保证高优先级任务执行。
    在这里插入图片描述
    消息队列的简单应用代码如下,创建了两个任务,任务A用于从队列中读取数据并输出,任务B用于每1秒向队列写入递增的数据
#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/queue.h"
#include "freertos/task.h"
#include "esp_log.h"
#include <string.h>QueueHandle_t queue_handle_t = NULL;typedef struct {int value;
}queue_data_t;void taskA(void* param)
{queue_data_t data;while(1){if(pdTRUE == xQueueReceive(queue_handle_t , &data , 100)){ESP_LOGI("QUEUE" , "receive value : %d",data.value);}}
}void taskB(void* param)
{queue_data_t data;memset(&data , 0 , sizeof(queue_data_t));while(1){xQueueSend(queue_handle_t , &data , 100);vTaskDelay(pdMS_TO_TICKS(1000));data.value++;}
}void app_main(void)
{queue_handle_t = xQueueCreate(10 , sizeof(queue_data_t));xTaskCreatePinnedToCore(taskA , "taskA" , 2048 , NULL , 3 , NULL , 1);
xTaskCreatePinnedToCore(taskB , "taskB" , 2048 , NULL , 3 , NULL , 1);}

通过监视串口查看运行效果
在这里插入图片描述

工程可以下载

关键字:企业门户网建设_软件开发做平台_seo怎么优化网站排名_百度一下就知道官方

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: