PSRAM就是伪SRAM,内部内存颗粒跟SDRAM颗粒比较相似,但外部接口跟SDRAM不同,不需要SDRAM那样复杂控制器和刷新机制,PSRAM接口跟SRAM接口是一样。psram内部自带刷新机制。PSRAM也由初期平行接口发展到串行接口,由SPI、Quad SPI (QPI) 和Octal SPI (OPI)几种串行接口,用于需要小型化场合,能够提供带宽范围从100Mbps ~
嵌入式编程中 attribute 到底是什么相信阅读嵌入式代码老铁经常看到一些类型定义、变量、函数有 attribute 标识符,这个标识符号到底是做什么?有哪些用法,咱们今天就来聊一聊。attribute 可以指定编译时细节。其可作用于变量、函数、结构体、结构体成员。 值注意是,Attributes 机制并不是 C标准 一部分。因此,使用 Attributes 程序有时候不可跨编
转载 2024-06-28 22:22:34
71阅读
一、故事首先谈一谈为啥要做这个东西,总之是一种割舍不断情结、念想。现在心愿已了,可以安息了。。。。。。哈哈。其实要从我经历讲起,这就有点扯了,如果没有兴趣看,请忽略下段内容。 /* 大概是大二时候,为了参加学校比赛,组装了一台无人机,只有外壳是自己用PRO/E设计,然后用3D打印机打出来,其他电子设备都是买现成,包括螺旋桨。无人机飞起来了,但是一轮面试都没有通过。虽然有些遗憾,但也
    这两天在调试即将完成Hands Free ProfileAG部分代码,在调试与HF Client设备收发AT指令部分时遇到了AT+CNUM指令HF Client端 “解析AT指令错误”提示。由于HFP中,AT指令参数都是存放在字符串中进行收发,字符串解析就至关重要,而在解掉bug同时,我也在不断地学习。本文便介绍一个在HF Client端利用sscanf()
转载 2024-05-15 12:43:19
100阅读
ESP32开发之路(3)— 点亮第一个LED灯及按键输入本次开发是在Ubuntu下,使用模块是GOOUUU-ESP32,使用VSCode编辑项目。基于工程:ESP32开发之路(2)— HelloWorld工程分析和优化一、点亮第一个LED灯复制hello_world文件并命名为led_key,修改hello_world_main.c为app_main.c; 然后将工作区保存在led_key文件
说明:我参考正点原子战舰开发板例程和实验进行深入思考学习,读者若觉得有哪里描述不全可以去这里下载资料查阅:stm32f103战舰开发板概念这里所说堆栈,是针对单片机所说“堆”(HEAP)与“栈”(STACK),它们是在内存中开辟一片拥有特殊用途区域;这里所说内存,是指STM32片内RAM,对于大容量STM32F10xxx来说RAM大小为64KB。内存布局时,MDK-ARM编译器
Arduino ESP32 flash数据存储结构?分区表官方文档:《分区表》✨想了解ESP32 flash数据存储结构需要从分区表开始了解。一点类似一台电脑上挂载硬盘一样。分区表保存 SPI flash 各区信息,包括引导程序、各种应用程序二进制文件、数据及文件系统等/*在Arduino环境中使用flash布局 |----|-------|--------|-------|------
提示:好记性不如烂笔头。本博客作为学习笔记,有错误地方希望指正 文章目录前言:一、任务延时vTaskDelay()二、任务延时vTaskDelayUntil()三、任务延时xTaskDelayUntil()四、获取任务优先级uxTaskPriorityGet()五、任务优先级设置vTaskPrioritySet()六、任务挂起vTaskSuspend()七、任务恢复vTaskResume()八、
目录整体框图(草稿版)整体流程图(草稿版)esp32-WIFI状态机esp_wifi.h depict WiFi programming modeltcp-clientGPIO ESP-IDF 编程指南 整体框图(草稿版)整体流程图(草稿版)esp32-WIFI状态机WiFi-startWiFi-event-machine用户自定义状态机回调函数回调函数作为形参方式传递给esp_event_l
转载 2024-05-07 22:35:33
126阅读
这个实验功能是使用乐鑫提供 nvs 库去对 spi flash 读写。 这个实验代码为工程“3_9_nvs”目录。3.9.1. 实验内容(1) 学习 NVS 库函数接口 (2) 学习 NVS 存储/读取多种类型数据3.9.2. ESP32 NVS 功能介绍NVS总的来说,就是非易失性存储,类似MCU EEPROM,但实际上调用ESP32这些函数,数据是存储在FLASH中。它管理方式类似
访问以下链接可下载有关 ESP32 文档资料https://www.espressif.com/sites/default/files/documentation/esp32_datasheet_cn.pdfESP32ESP23硬件资源ESP32 是集成 2.4 GHz Wi-Fi 和蓝牙双模单芯片方案,采用台积电(TSMC)超低功耗 40 纳米工艺,拥有最佳功耗性能、射频性能、稳定性、
      调用函数pxPortInitialiseStack()初始化任务堆栈,并将最新栈顶指针赋值给任务TCBpxTopOfStack字段。      调用函数pxPortInitialiseStack()后,相当于执行了一次系统节拍时钟中断:将一些重要寄存器入栈。虽然任务还没开始执行,也并没有中断发
转载 2024-07-06 21:20:32
248阅读
scratch3.0系列章节列表scratch3.0二次开发scratch3.0基本介绍(第一章)scratch3.0二次开发运行scratch-gui项目并了解工程结构(第二章)scratch3.0二次自定义品牌logo(第三章)scratch3.0 scratch-gui中集成自定义用户系统1(第四章)scratch3.0 scratch-gui中集成自定义用户系统2(第五章)scratch3
1.DAC基础大多数STM32芯片会自带DAC输出模块(12 位数字输入,电压输出型 DAC)例如常用STM32F103RCT6 ( RAM48K  FLASH 256K),芯片DAC有两个输出通道本次实验使用单 DAC 通道 1,采用 12 位右对齐格式输出。 STM32F103 参考手册P185:DAC过程,简要概括为:给DAC_DORx寄存器赋值,然后DAC模块处理
stack corruption:栈摧毁错误此类错误一般是数组越界造成。 segmentation fault:段错误 一般有以下原因容易造成段错误:   1)指针:       指针为空"NULL",或者指针未初始化就使用,指针使用完后未释放  2)内存(超出分配内存空间):   
flash和SRAM区别 flash可以像硬盘一样存数据,也可以直接像RAM运行,一般在里面放bootload,程序执行代码。1、stm32堆栈 单片机是一种集成电路芯片,集成cpu、ram、rom、多种i/o口和中断系统、定时器/计数器等功能。cpu中包括了各种总线电路,计算电路,逻辑电路,还有各种寄存器。stm32有通用寄存器R0-R15以及一些特殊功能寄存器,其中包括了堆栈指针寄存器。
[经验] STM32堆栈溢出会出现问题及溢出原因分析和解决方法 裸奔时候,一直担心栈会不会溢出。由于栈使用量无法估测,导致栈设置要么过大,要么过小。今天,我想了一种简单检测方法,可以简单检测栈是否溢出,下面是我具体思想。1、查看*.map文件,查找栈顶地址;2、定义一个全局变量,用于存储栈顶上电时候数据;3、在系统参数初始化时候将栈顶数据赋给第二步定义全局变量;4、在系统大循环
1,启用 外部RAM勾选 Support for external, SPI-connected RAM 如下图2,配置说明1,选择 外部RAM 类型(见下图) 这个要根据自己板子选择, ESP32支持外部RAM有限. 不清楚 选择 自动检测2, 设置 外部RAM 时钟速度(见下图) 勾选40M即可官方解释:选择SPI RAM芯片速度。如果SPI RAM被启用,我们只支持现在支持三种
转载 2024-02-21 10:47:34
2967阅读
提示:本博客作为学习笔记,有错误地方希望指正 文章目录一、ESP32新建工程参考资料:1.1、Vscode 中IDF环境搭建1.1、使用IDF历程1.2、Cmake构建工程二、硬件三、输出结果四、工程文件下载 一、ESP32新建工程参考资料:  参考资料:ESP IDF编程手册V4.4   任何芯片开发第一步都是从新建工程开始,对于ESP32而言,初学时候新建工程还不是那么好理解,ESP
在EPS32中已经将EEPROM弃用。对于ESP32新应用程序,建议使用NVS为首选项。 EEPROM前言弃用。对于ESP32新应用程序,建议使用NVS为首选项。提供EEPROM是为了向后兼容现有的Arduino应用程序。EEPROM是使用NVS中单个blob实现,因此它是容器(Flash)中容器(NVS)(弟中弟)。因此,它不会是一种高性
  • 1
  • 2
  • 3
  • 4
  • 5