完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
上一篇博文更的是双核版的队列测试,基本在那里说的很清楚了,那里的代码注释也多的多,这里单核版本有一点不一样的地方,但实现起来比双核的要简单,所以直接给大家代码,如果不理解就去看上一篇博文,里面说明和注释都非常清楚
给大家代码,这里实现了两个进程间使用一个int数据类型的队列进行通信,当然这里应该也是支持结构体多类型的,想试试的可以去上一篇博文看看怎么弄的 QueueHandle_t queue; //单核多进程测试队列,这是队列的句柄 TaskHandle_t Task1; //任务0的句柄 TaskHandle_t Task2; void task1( void * parameter ) { int data_get = 520; BaseType_t Status; const TickType_t xTicksToWait = pdMS_TO_TICKS(100); while(1) { vTaskDelay(800); Status = xQueueReceive(queue, &data_get, xTicksToWait); //单核调用队列接收的函数 if(Status == pdPASS) { Serial.print("成功收到数据:"); Serial.println(data_get); } Serial.print("接收数据任务的优先级:"); Serial.println(uxTaskPriorityGet(Task1)); // 就是获取任务的优先级,而传入的参数就是任务的句柄 Serial.println("***********************************************************"); } } void task2( void * parameter) { int data_send = 625; BaseType_t Status; const TickType_t xTicksToWait = pdMS_TO_TICKS(200); while(1) { vTaskDelay(1200); //每1200ms向队列中发送一次数据 Status = xQueueSend(queue, &data_send, xTicksToWait); //向队列中发送数据 if(Status == pdPASS) { Serial.print("成功发送数据:"); } Serial.print("发送数据任务的优先级:"); Serial.println(uxTaskPriorityGet(Task2)); Serial.println("***********************************************************"); } } void setup() { Serial.begin(115200); queue = xQueueCreate( 10, sizeof( int ) ); //创建一个队列,用的是整数型 //下面是创建两个任务 xTaskCreate( task1, //指定任务函数,也就是上面那个task1函数 "TaskOne", //任务名称 10000, //任务堆栈大小 NULL, //作为任务输入传递的参数 1, //优先级 &Task1); //任务句柄,可以不用创建,直接用NULL xTaskCreate( task2, "TaskTwo", 10000, NULL, 3, &Task2); if(queue == NULL){ Serial.println("创建队列失败"); } } void loop() { Serial.println("主程序仍然在运行"); delay(1000); } 看看结果 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
RK 主流平台参数对比文档:助力设计阶段快速选型(包含RK3588 RK3588S RK3588S2 RK3576 RK3568)
335 浏览 0 评论
行业集结:共同定制 RK3566 集成 AI 眼镜的前沿 AR 方案
440 浏览 0 评论
428 浏览 0 评论
406 浏览 0 评论
772 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-2-22 02:08 , Processed in 0.373474 second(s), Total 37, Slave 32 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191