当前位置: 首页 > news >正文

ESP32S3基础2-多任务处理、EXTI中断、时钟与定时器

1.多任务处理说明

在ESP32-S3上实现多任务处理的几种方式,其中重点突出了实现真正并行(利用双核)的不同途径和相关组件。xTaskCreatePinnedToCore 属于 FreeRTOS 任务创建函数家族的一员。它们之间的区别和联系如下表所示,可以根据项目需求选择最合适的一个.

下图标红方格是本次代码演示的。

1.1.xTaskCreatePinnedToCore 函数体:

BaseType_txTaskCreatePinnedToCore(TaskFunction_t pxTaskCode,constchar*constpcName,constuint32_tusStackDepth,void*constpvParameters,UBaseType_t uxPriority,TaskHandle_t*constpxCreatedTask,constBaseType_t xCoreID)

入参详解:


在 C/C++ 中,函数名本身就是一个指向该函数的指针。因此,当函数的参数期望一个指针(即函数指针)时,直接传递函数名即可,不需要在前面加 &。

1.2.多任务代码实例

业务讲解:期望第一个LED灯一直100ms间隔闪烁,第二个LED灯是接受按键操作后再进行闪灭,必须运行同步并行,避免出现阻塞效果。

#include<stdio.h>#include"freertos/FreeRTOS.h"//FreeRTOS的底层头文件#include"freertos/task.h"//FreeRTOS的底层头文件#include"driver/gpio.h"//与GPIO函数相关联的头文件,表示GPIO文件是在官方目录的driver文件夹下,在main函数中调用gpio_config函数#include"led.h"#include"beep.h"#include"key.h"#include<stdint.h>voidled_task(void*param){uint8_tnum=0;while(1){num=key_scan();if(num==1){gpio_toggle(GPIO_NUM_38);}}}voidtoggle_task(void*param){while(1){gpio_toggle(GPIO_NUM_39);vTaskDelay(100);}}voidapp_main(){vTaskDelay(5000);led_init();key_init();while(1){xTaskCreatePinnedToCore(led_task,"led_task",1024,NULL,1,NULL,0);xTaskCreatePinnedToCore(toggle_task,"toggle_task"
http://www.jsqmd.com/news/474819/

相关文章:

  • MySQL【表的约束下】
  • 手把手教你用阿里云镜像制作glibc.i686离线安装包(CentOS7专属)
  • [特殊字符] Nano-Banana实战案例:从手机到家电,全品类产品拆解图生成实录
  • Zotero7文献笔记模版:从安装到自定义的完整指南
  • 喜讯!第十六批生成合成类算法备案备案号公布
  • 天梯赛编程题 L2—048 寻宝图 题解
  • 软件安全实战指南:从零日漏洞到安全部署的核心要义
  • Visual Studio误删.vcxproj.filters文件?3步教你手动重建(附模板)
  • Unity URP渲染管线进阶---自定义RendererFeature实战解析
  • 阿姆智创21.5寸嵌入式工控一体机,多场景智造的嵌入式终端,源头工厂ODM定制应用
  • 衡山派D133EBS开发板驱动MS1100 VOC气体传感器实战指南
  • Linux用户必备:5款免费CAD软件实测对比(附安装指南)
  • OpenMV实战指南:sensor与image模块的高效配置与图像处理技巧
  • 从SCAU综合实验到实战:C语言文件操作与字符处理的进阶解析
  • 避坑指南:PyQt5+Matplotlib动态绘图卡顿?试试这3种优化方案
  • PyTorch量化实战:从模型压缩到移动端部署
  • ENVI遥感图像处理入门实战:从数据加载到基础分析
  • 告别WebSecurityConfigurerAdapter:Spring Security 5.7+组件化配置实战
  • LangGraph实战进阶(二)——巧用条件边与循环构建可自愈的智能体
  • LegionFanControl报错?手把手教你解决TextWriter关闭问题(附Defender白名单设置)
  • 思博伦Spirent TestCenter中高效配置单播流uni-stream的实战指南
  • Ascend平台下的PageAttention优化实践
  • 从颜真卿到赵孟頫:用zi2zi-chain复刻历代书法名家字体的完整流程
  • 基于STM32的多模态智能门禁系统设计与优化
  • 【mmdetection实战】SSD模型适配自定义VOC数据集:从数据准备到模型评估全流程解析
  • OpenSSL交叉编译实战:从配置到优化的完整指南
  • 手把手教你解决uni-app音频播放时长获取问题(附完整代码示例)
  • FAST-LIVO 常见编译与运行时问题全解析
  • SOFTS:如何用“星形聚合”革新多变量时序预测?——NeurIPS 2024核心解读
  • 从表情包到OLED像素:Image2Lcd与PCtoLCD2002双软件取模实战