随笔分类 - 嵌入式开发
摘要:基于ESP-IDF4.1 #include <esp_wifi.h> #include <esp_event.h> #include <esp_log.h> #include <esp_system.h> #include <nvs_flash.h> #include <sys/param.h> #
阅读全文
摘要:基于ESP-IDF4.1 1 /* 2 FAT文件系统存储文件,使用磨损均衡库wear-leveling 3 */ 4 5 #include <stdlib.h> 6 #include <stdio.h> 7 #include <string.h> 8 #include "esp_vfs.h" 9
阅读全文
摘要:基于ESP-IDF4.1 1 #include <stdio.h> 2 #include <string.h> 3 #include <sys/unistd.h> 4 #include <sys/stat.h> 5 #include "esp_err.h" 6 #include "esp_log.h
阅读全文
摘要:基于ESP-IDF4.1 1 #include <stdio.h> 2 #include "freertos/FreeRTOS.h" 3 #include "freertos/task.h" 4 #include "esp_system.h" 5 #include "nvs_flash.h" 6 #
阅读全文
摘要:基于ESP-IDF4.1 1 #include <stdio.h> 2 #include "freertos/FreeRTOS.h" 3 #include "freertos/task.h" 4 #include "esp_system.h" 5 #include "nvs_flash.h" 6 #
阅读全文
摘要:基于ESP-IDF4.1 #include <string.h> #include <stdlib.h> #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "freertos/event_groups.h" #inc
阅读全文
摘要:基于ESP-IDF4.1版本 main.c文件如下: #include <string.h> #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "freertos/event_groups.h" #include "
阅读全文
摘要:1.在FreeRTOS中,使用的数据类型虽然都是标准C里面的数据类型,但是针对不同的处理器,对标准C的数据类型又进行了重新定义。 2.链表由节点组成,节点与节点之间首尾相连,节点包含用于指向后一个节点的指针。节点都是自定义类型的数据结构,可以使单个数据、数组、指针数据和自定义的结构体数据类型。 3.
阅读全文
摘要:#include <stdio.h> #include <string.h> #include <stdlib.h> #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "freertos/queue.h" #incl
阅读全文
摘要:FreeRTOS 的一个重要的通信机制 消息队列,消息队列在实际项目中应用较多。 一.消息队列的作用及概念: 消息队列就是通过 RTOS 内核提供的服务,任务或中断服务子程序可以将一个消息(注意,FreeRTOS消息队列传递的是实际数据,并不是数据地址,RTX,uCOS-II 和 uCOS-III
阅读全文
摘要:#include <driver/gpio.h> #include <esp_task_wdt.h> #include <freertos/FreeRTOS.h> #include <freertos/queue.h> #include <freertos/semphr.h> #include <f
阅读全文
摘要:ESP32芯片配有48个具有多种功能的引脚。并非所有的引脚都暴露在所有的ESP32开发板中,有些引脚不能使用。 关于如何使用ESP32 GPIO有很多问题。你应该用什么pin?在项目中应该避免使用哪些pin?本文旨在成为一个为ESP32的GPIO提供一个简单易懂的参考指南。 下图显示了ESP-WR
阅读全文
摘要:1.makefile:定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,也可以执行操作系统的命令。makefile文件保存了编译器和连接器的参数选项,还表述了所有源文件之间的关系(源代码
阅读全文
摘要:搭建ESP32A1S的ADF开发环境 一,获取IDF和IDF-TOOL adf是乐鑫的音频开发框架,里面有许多乐鑫的音频开发API,同时ADF是基于IDF的。这一部分可以按照官网的教程一步一步来。官网教程地址:ADF安装指南首先下载esp-idf,如果是第一次使用idf,可以在官网下载一个idf工具
阅读全文
摘要:有几种方法可以将模拟音频数据输入到ESP32中。 直接从内置的模数转换器(ADC)读取 这对于一次性读取很有用,但不适用于高采样率。 使用I2S通过DMA读取内置ADC 适用于模拟麦克风,例如MAX4466和MAX9814 使用I2S直接从I2S兼容外设读取 对于SPH0645LM4H,INPM44
阅读全文
摘要:1.ESP8266 可以用来做串口透传,PWM 调控,远程控制开关:控制插座、开关、电器等。2.ESP8266有几种不同的使用方式,适用于不同水平的开发工作者。 使用AT指令进行操作:这是最常见的方式,也是最简单是一种方式。无需编程,使用PC端的串口助手配合简单的指令就可以实现,也可以配合单片机发送
阅读全文
摘要:1.将偏差的比例、积分和微分通过线性组合构成控制量,用这一控制量对被控对象进行控制,这样的控制器称为PID控制器。简单说就是根据系统的误差,利用比例、积分、微分计算出控制量进行控制。 2.为什么需要PID算法?电机在不同负载情况下,为了保持速度不变,需要不断调整PWM占空比,PID算法可以动态调整,
阅读全文
摘要:主函数开始后的处理流程: 1.外设初始化:HAL_Init() 2.系统时钟配置 RCC振荡器初始化:HAL_RCC_OsConfig() RCC时钟初始化:HAL_RCC_ClockConfig() 系统滴答定时器初始化:HAL_SYSTICK_Config() 3.按键GPIO初始化 GPIO端
阅读全文
摘要:主函数开始后的处理流程: 1..所有外设初始化:HAL_Init() 2.系统时钟配置 RCC振荡器初始化:HAL_RCC_OsConfig() RCC时钟初始化:HAL_RCC_ClockConfig() 系统滴答定时器初始化:HAL_SYSTICK_Config() 3.高级定时器初始化 基本环
阅读全文