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

国外 电子 商务 网站 欣赏怎样解析网站域名

国外 电子 商务 网站 欣赏,怎样解析网站域名,网站什么做,个人空间备案网站名称前提知识&#xff1a;freertos消息队列 1.使用流程 1.GPIO配置 2.创建消息队列 3.创建消息队列数据输入线程任务 4.使能中断 5.添加中断处理函数 2.代码示例 #include <stdio.h> #include <inttypes.h> #include "freertos/FreeRTOS.h" #include…

前提知识:freertos消息队列

1.使用流程

1.GPIO配置

2.创建消息队列

3.创建消息队列数据输入线程任务

4.使能中断

5.添加中断处理函数

2.代码示例

#include <stdio.h>
#include <inttypes.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/queue.h"
#include "driver/gpio.h"static QueueHandle_t gpio_evt_queue = NULL;  // 定义队列句柄// GPIO中断服务函数
static void IRAM_ATTR gpio_isr_handler(void* arg) 
{uint32_t gpio_num = (uint32_t) arg;  // 获取入口参数xQueueSendFromISR(gpio_evt_queue, &gpio_num, NULL); // 把入口参数gpio_num值发送到队列钟,NULL表示队列满时返回错误结束
}// GPIO任务函数,获取队列gpio_evt_queue最老的数据,并输出,队列为空时一直等待
static void gpio_task_example(void* arg)
{uint32_t io_num; // 定义变量 表示哪个GPIOfor(;;) {if(xQueueReceive(gpio_evt_queue, &io_num, portMAX_DELAY)) {  // 获取队列的值放到io_num变量中,portMAX_DELAY表示为空时一直等待printf("GPIO[%"PRIu32"] intr, val: %d\n", io_num, gpio_get_level(io_num)); // 打印相关内容}}
}void app_main(void)
{// 1.GPIO参数配置gpio_config_t io0_conf = {.intr_type = GPIO_INTR_NEGEDGE, // 下降沿中断.mode = GPIO_MODE_INPUT, // 输入模式.pin_bit_mask = 1<<GPIO_NUM_0, // 选择GPIO0.pull_down_en = 0, // 禁能内部下拉.pull_up_en = 1 // 使能内部上拉};gpio_config(&io0_conf);// 2.创建一个队列记录按键信息,队列大小为10,存放数据大小为uint32_t大小gpio_evt_queue = xQueueCreate(10, sizeof(uint32_t));// 3.开启一个开启GPIO任务,运行gpio_task_example函数,栈空间大小为2048,没有参数(只允许使用一个指针进行参数传递,多参数时可以封装为一个结构体),任务优先级为10,不接收任务句柄xTaskCreate(gpio_task_example, "gpio_task_example", 2048, NULL, 10, NULL);// 4.创建GPIO0中断服务,stm32中的中断使能gpio_install_isr_service(0);// 5.给GPIO0添加中断处理函数为gpio_isr_handlergpio_isr_handler_add(GPIO_NUM_0, gpio_isr_handler, (void*) GPIO_NUM_0);
}

3.问题

1.IRAM_ATTR作用

IRAM_ATTR 是 ESP-IDF 中的一个函数属性宏,全称是 "Instruction RAM Attribute",用于告诉编译器 将该函数放入 ESP32 的 IRAM(指令 RAM)中执行,而不是默认的 flash。

ESP32 正常情况下大多数代码是从 Flash(外部 SPI Flash)中运行的。但当发生中断时,如果中断服务函数(ISR)所在代码段仍在 Flash 中,而此时恰好 Flash 被其他操作占用(比如写 Flash 或 WiFi 使用 SPI Flash),会导致中断函数无法及时执行,从而造成 系统崩溃或响应延迟

4.总结

1.esp32引脚不分组(stm32引脚分为ABCD等多组)

2.esp32所有中断共用一个中断源,所以gpio_install_isr_service使能一次中断就行了,stm32不同引脚需要使能对应的中断。因此ESP32也不能对不同引脚配置不同硬件中断优先级(可通过软件实现不同中断优先级)

http://www.dtcms.com/a/527006.html

相关文章:

  • 湛江市律师网站建设品牌传奇做网站空间
  • 生成手机版网站金湖做网站
  • 宝塔面板怎么做网站东莞外贸优化公司
  • 十大不收费看盘软件网站苏州互联网公司集中在哪里
  • 西安做网站公司 玖佰网络网站能不能一边用 一边备案
  • 网站上面关于我们要怎么填写阿里云备案 网站名称
  • 单页网站设计欣赏打开网站
  • 电商网站建设与管理推广图片制作
  • 东莞市网站seo旅游小程序页面设计模板
  • 建设银行网络学习网站品牌网上授权
  • 和魔鬼做交易的网站网站建设平台代理
  • 苏宁易购网站风格山东seo推广多少钱
  • 网站建设销售顾问开场白wordpress版微信小程序
  • 网站建设后如何修改北京做网站好的
  • 网站做的长图能导出吗蚌埠建设银行网站
  • 笑话网站模版太原建站一条龙
  • 网站开发电脑内存要多少电商 网站 备案
  • 网站开发是什么语言手机网站定制
  • 现在有没有免费的网站如何在百度提交网站
  • 建一个网站多少钱?广州公共资源交易中心交易平台
  • 南沙做网站足球比赛直播雨燕
  • 西安学校网站建设报价楼盘动态
  • wordpress电子商务视频教程网站优化外包价格
  • 产品展示型网站模板wordpress音乐小工具
  • 网站建设费用会计科目湖北强涛建设工程有限公司网站
  • 如何在文本上做网站链接符号网站设计与制作是网页吗
  • 温州网站优化推广方案搜索引擎seo是什么意思
  • 手机网站 seo网站一起做网店
  • wordpress开发工作流怎样做网站优化排名
  • 【硬件基础篇】:认识电流、电压、功率