本人使用的esp32的以太网硬件组合为内置MAC和外置PHY 配置完成,编译正常之后进行代码解析(为什么有这系列的文章,因为小编打算制作一个基于ESP32的wifi和以太网自动切换的物联设备)当拿到一个IDF程序时,我们首先找到入口函数void app_main(void)本人已经删除了大部分无用代码(使用人根据自己的实际硬件进行修改)void app_main(void) {
自去年搭建了v3.3版本的esp32环境后,如今esp32的版本已经到了4.3版本,为了紧跟乐鑫的步伐,打算将v3.3升级至v4.2稳定版本,从此踏上了一条漫漫的不归路。 先将经历的一些坑罗列如下,都是笔者的血泪史。安装包千万不能用github上生成的zip压缩包! 非常坑的地方!但是有小伙伴又说了,按照官方文档使用下列指令cd ~/esp git clone -b release/v4.2 --
转载 2024-04-26 11:48:59
35阅读
第一回 新手上路(开始之前要准备)本系列涉及到使用的软件和硬件并不像以前那样繁琐、复杂。如果之前有这方面的了解,初学过Python或者用过80C51或STM32系列的MCU,那么这一回的内容就跟吃馍沾酱豆一样简单了。学编程语言总是越学感觉越难,往往都是兴趣作为原始驱动,后面却变成了生产力里的驱动。人生苦短,及时行乐,如果刚上手就能够方便地驱动硬件,初学即巅峰,岂不是美滋滋?那么MicroPytho
使用rust(no-std)环境和esp-hal库实现SSD1306显示屏(128x64)显示bmp图片. 摘要使用rust(no-std)环境和esp-hal库实现SSD1306显示屏(128x64)显示bmp图片.平台信息esp32(模组:ESP32-WROOM-32D)(xtensa lx6)(xtensa-esp32-none-elf)rust开
转载 2024-07-22 14:10:37
172阅读
1、如何在VSCode和ESP-IDF的环境下创建工程说实话,这是我用ESP-IDF在VSCode环境下最不喜欢的事情,在一顿CSDN和百度之后,很多大佬博主都推荐使用VSCode,通过官方示例来进行工程创建,好处是所需要的头文件都已经准备好了,同时很有可能会以及写好你所需要的外设的驱动头文件,看似非常省力。 但是!坑又非常非常的多!当我在example示例文件夹中看到了关于矩阵键盘的示例,我满心
1.折腾过电脑的朋友都知道,当电脑运行比较卡的时候,我们可以通过给电脑加装内存条来改善电脑的性能。那么号称微型计算机的单片机能不能像电脑一样加装内存条呢?装内存条倒是不行,但是我们可以给单片机外加和内存条效果一样的SRAM来提升单片机的性能。下面以STM32F407ZGT6单片机来讲解一下来扩展外部SRAM 原理:给STM32芯片扩展内存与给PC扩展内存的原理是一样的,只是PC上一般以内存条的形式
嵌入式系统运行时的内存情况是非常值得关注的。本文档用于分析乐鑫ESP32 SDK(版本esp-idf-v3.0-rc1) Heap (堆内存)管理的实现。 1:Heap管理主要函数接口与数据结构1.1主要函数接口ESP32的SDK对于heap部分管理的源码位于路径\esp-idf-v3.0-rc1\components\heap下,可以简单的认为分为两层:heap_caps_init.c
背景本篇文章将介绍一下ARM架构的ARM-M系列单片机的flash以及ram,以及程序启动的逻辑。提前申明,本人所写的本文是汲取网上的知识以及自己的理解,如果哪里讲的不对请广大网友指正。本文先以stm32f429ZIT6这个型号的单片机进行介绍。STM32F429ZIT6微控制器2048KB FLASH,256 KB SRAM, SDRAM 64Mbits。最高180MHz主频FLASH先说fla
ESP32-S3-BOX        ESP32-S3-BOX-Lite是乐鑫推出的新一代开源 AIoT 开发套件,搭载支持 AI 加速的 ESP32-S3 Wi-Fi + Bluetooth 5 (LE) SoC。该开发板配备一块2.4寸LCD显示屏、双麦克风、一个扬声器、两个用于硬件拓展的Pmod™兼容接口、结合
嵌入式软件笔试题 (c语言版) 1:用C语言实现大小端的测试   Int CheckCpu()      {union{int a;char b;}c; c.a=1;if(c.b==1)printf(“小端”);else printf(“大端”);}2:volatile的作用有哪些?Volatile第一变量相当于
摘要:本文介绍了一种智能家居环境控制器,开发者设计基于STM32F103C8T6开发板,通过WIFI模块接入互联网,通过公有云—机智云AIoT作为服务器,与手机连接。在手机APP的操控下,实现远程温度、湿度及光照度的测量,同时远程控制家居中设备的开启和关闭。样机经过长时间测定,运行稳定可靠,具有良好的应用前景。 随着计算机技术、通信技术、网络技术的发展及互联网的日益普及,人们对传统的家居环境也提
转载 2024-09-11 12:52:41
83阅读
I2C中曾经说过其实目前基本用Flash而不用E2PROM,E2PROM最大的特点是按字节操作,Flash则是按扇区操作。目前STM32单片机教程里基本上都是用W25Q128这款SPI Flash芯片来教学SPI通信,我手头上开发板也是使用了这个芯片,一起来看下SPI通信的实现方法。W25Q128是一款NOR Flash(关于NOR和NAND,在这里不是重点,这里重点在应用),128Mb(16MB
转载 2024-09-16 13:30:35
203阅读
嵌入式编程中的 attribute 到底是什么相信阅读嵌入式代码的老铁经常看到一些类型定义、变量、函数有 attribute 标识符,这个标识符号到底是做什么的?有哪些用法,咱们今天就来聊一聊。attribute 可以指定编译时的细节。其可作用于变量、函数、结构体、结构体成员。 值的注意的是,Attributes 机制并不是 C标准 的一部分。因此,使用 Attributes 的程序有时候不可跨编
转载 2024-06-28 22:22:34
71阅读
1、本示例适合于ESP8266和ESP32的OTA升级,使用官方的RTOS SDK3的框架编程,用户只要给出URL,代码自动解析出域名、IP、端口、文件路径等信息,然后通过HTTP请求下载固件。2、本人测试固件放到阿里云对象存储OSS中,可以参考以下链接说明。或者自己搭建局域网服务器。阿里云对象存储上传文件_dear_Wally的博客3、user_fota.c#include "user_fota
文章目录问题描述:问题解决更改LVGL RAM缓存大小看ESP32RAM使用情况查看flash大小参考链接 问题描述:使用LVGL可显示64 * 64的GIF,但是却无法显示120*120的GIF。问题解决更改LVGL RAM缓存大小分析原因:在用LVGL显示GIF图片时,会用到LVGL的GIF解码器,该解码器要求的空间大小如下: 因此,对于6464的GIF图片,其需要的RAM空间为: 对于1
之前博客中讲解了如何通过STM32CubeMx配置生成多通道ADC的DMA方式采集,以及内部温度传感器的使用,但还留下了一些疑问,问什么需要屏蔽DMA传输完成的中断,以及所生成的代码的详细分析。接下来就开始对上一篇文章的内容进一步讲解。 本次的分析思路将按照自动生成的主函数顺序进行讲解。但不介绍如下函数:/* Reset of all peripherals, Initializes the Fl
【简化的 OTA Demo】本示例用于演示对固件空中升级的流程。本示例是一个简化版的演示程序,对于实际的产品,你应当使用安全协议,例如 HTTPs。【目标】运行在 ESP32 上面的应用程序可以通过下载一个新的镜像文件并将其存储到 flash 上面来进行更新。在这个例子中,ESP32 在 flash 上面有三个镜像:工厂、OTA_0、OTA_1,它们每个镜像都是一个子包含的分区。OTA 镜像分区的
转载 2024-05-14 16:55:57
127阅读
背景编程指南基于4.4.2版本代码基于4.4.1版本外设的驱动逻辑外设包括:定时器、I2C、SPI、UART、RTC、ADC、DAC等等。由于每块芯片的外设都有所不同(地址、功能等),所以驱动代码天然需要进行功能分层。一方面保证驱动的逻辑性,一方面可以将代码功能进行解耦(如下表目录所示,新增芯片时只需新增LowLevel层的文件)。 分层如下:Low Level (LL) LayerHardwar
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录一、首页二、开发环境三、开发过程四、整体代码 一、首页该部分主要为博主本人学习记录,以便后续要用到的时候可以快速上手,同时也帮助初学者快速建立一个工程项目,学习MQTT通信;或者想要使用ESP32做开发的人,快速理解MQTT的运作方式的一个文章。因为博主本人代码功底有限,ESP32使用也不多,如有不对之处,请多包涵。二、开发
  某宝上买了个esp32,还有一本ESP32开发指南的书。  然后就是环境搭建。上面写的主要是linux上的,我在自己的orange pi pc开发板上搭建了半天,后面还是有些地方有问题,没弄好。以后有空了再处理处理,毕竟一个香橙派的价格那么低,再加一个显示屏价格也不高,而且它本身也能硬件编程,还能用于学习各种编程......虽然速度慢了点,但是入门级绝对够用。当然,如果那些A80啦、rk339
转载 2024-05-20 10:26:32
655阅读
  • 1
  • 2
  • 3
  • 4
  • 5