用C语言进行MCS51系列单片机程序设计是单片机开发和应用的必然趋势。Keil公司的C51编译器支持经典8051和8051派生产品的版本,通称为Cx51。应该说,Cx51是C语言在MCS51单片机上的扩展,既有C语言的共性,又有它自己的特点。本文介绍的是Cx51程序设计时堆栈的计算方法。   1.堆栈溢出问题。MCS51系列单片机将堆栈设置在片内RAM中,由于片内RAM资源有限,堆栈区的范围也是
stack corruption:栈摧毁错误此类错误一般是数组越界造成的。 segmentation fault:段错误 一般有以下原因容易造成段错误:   1)指针:       指针为空"NULL",或者指针未初始化就使用,指针使用完后未释放  2)内存(超出分配的内存空间):   
[经验] STM32堆栈溢出会出现的问题及溢出原因分析和解决方法 裸奔的时候,一直担心栈会不会溢出。由于栈的使用量无法估测,导致栈的设置要么过大,要么过小。今天,我想了一种简单的检测方法,可以简单检测栈是否溢出,下面是我的具体的思想。1、查看*.map文件,查找栈顶地址;2、定义一个全局变量,用于存储栈顶上电时候的数据;3、在系统参数初始化的时候将栈顶数据赋给第二步定义的全局变量;4、在系统大循环
一、背景ESP-ADF 的 API 提供了一种使用编解码器(解码器和编码器)、流或音频处理功能等元素开发音频应用程序的方法。 该框架是通过将Elements组合成一个Pipeline来开发音频应用程序。如下图所示: 将MP3解码器和I2S流两个元素添加进管道,解码器的输入是MP3文件数据流,I2S流将解码后的音频数据输出到片外,各应用程序之间通过事件接口通信。二、API说明以下音频元素接口位于 a
转载 2024-03-13 06:43:54
218阅读
由于STM32的板子没有自带蓝牙和wifi模组,所以外设方面的demo,我选择放到乐鑫的ESP32模组上。一方面是由于ESP32这块板子有丰富的BT/WIFI的实现例程,还因为乐鑫的这款SOC扩展性很强,自身的SDK: ESP-IDF也比较成熟。 BLE Peripheral指的是蓝牙外设,比如蓝牙手环,蓝牙电视遥控器等,都是这类走蓝牙低功耗的外设设备。与外设设备相对应的就是BLE Central
转载 2024-06-16 08:51:52
615阅读
    这两天在调试即将完成的Hands Free Profile的AG部分代码,在调试与HF Client设备收发AT指令部分时遇到了AT+CNUM指令HF Client端 “解析AT指令错误”的提示。由于HFP中,AT指令参数都是存放在字符串中进行收发的,字符串的解析就至关重要,而在解掉bug的同时,我也在不断地学习。本文便介绍一个在HF Client端利用sscanf()
转载 2024-05-15 12:43:19
100阅读
本篇文档用于说明如何基于 ESP32 自定义 BLE 服务,文档中协议相关的内容基于 Core 4.2 specification。 文章目录1 ATT 和 GATT2 结合 gatt_server_service_table 分析3 AT 固件自定义蓝牙服务4 常见问题 1 ATT 和 GATTATT(attribute protocol): 属性协议定义了两个角色:server 和 clien
转载 2024-05-23 16:59:43
550阅读
ESP32上充分利用双核的FreeRTOS多核编程介绍ESP32是一款功能强大的Wi-Fi和蓝牙双模芯片,内置两个处理核心(核心0和核心1)。FreeRTOS作为ESP32的操作系统,提供了多任务支持,可以使得这两个核心同时工作,双核,包含核心0(CPU0)和核心1(CPU1),在不使用freeRTOS情况下程序是跑在核心1上,而核心0主要运行WIFI和bluetooth,如果我们的项目不频繁使
转载 2024-07-17 13:16:12
237阅读
主要通信的数据在Characteristic就叫特征,特征的值就是我们有交易的数据,服务下有特征,根据特征值手机和ESP32就能进行数据的通信下面图有一个服务和一个特征,服务有uuid,特征有uuid,在特征内部我们可以读写值达到数据通信的目的手机调试下载URL:https://apksfull.com/download/no.nordicsemi.android.mcp/369...
原创 2021-11-12 14:18:30
1188阅读
掌控未来游戏体验:ESP32-BLE-Gamepad 开源项目推荐1、项目介绍在数字时代的洪流中,ESP32-BLE-Gamepad 是一个强大的开源项目,它将 ESP32 芯片的潜力转化为一款高效、可自定义的蓝牙游戏手柄。这个库不仅允许您构建自己的无线游戏控制器,而且能兼容各种操作系统,包括 Windows、Android 和 Linux。它的灵活性和易用性使其成为 DIY 爱好者和电子游戏开发
第一部分:深入研究ESP32BLE广播介绍欢迎来到我们关于ESP32BLE广播和扫描的广泛指南的第一部分。在本节中,我们将重点关注BLE广播——BLE通信的基本方面,它使设备能够广播其存在和功能。我们将探讨BLE广播的原理,以及它在物联网应用中的重要性,并通过完整的代码示例指导您在ESP32上实现BLE广播。了解BLE广播BLE广播是BLE设备向其他设备广播有关自身的信息的过程。这些信息可以包
转载 2024-09-29 14:32:47
326阅读
ESP32 使用 beacon 超时机制检测 AP 是否活跃。如果 station 在 inactive 时间内未收到所连接 AP 的 beacon,将发生 beacon 超时。inactive 时间通过调用函数 esp_wifi_set_inactive_time() 设置。beacon 超时发生后,station 将向 AP 发送 5 个 probe request,如果仍
前言我由于做软件业务的需要,在这几年开发经历中,发现一个现象:各家芯片厂商boot开放的资料较少,不支持或少量支持定制化功能。可能也是需求少吧,毕竟对基线的改动需要的工作量也不小。但这也导致各家芯片的boot开发体验都不是太顺畅,开发者要自己摸索boot的一些定制化实现方案。这篇内容接着上一篇 => 【填坑】ESP32 bootloader初探(上),看看bootloader里我是怎么搞定外
转载 2024-03-10 10:17:30
491阅读
说明:我参考正点原子战舰开发板的例程和实验进行深入思考学习,读者若觉得有哪里描述不全的可以去这里下载资料查阅:stm32f103战舰开发板概念这里所说的堆栈,是针对单片机所说的“堆”(HEAP)与“栈”(STACK),它们是在内存中开辟的一片拥有特殊用途的区域;这里所说的内存,是指STM32片内的RAM,对于大容量的STM32F10xxx来说RAM的大小为64KB。内存布局时,MDK-ARM编译器
Arduino ESP32 flash数据存储结构?分区表官方文档:《分区表》✨想了解ESP32 flash数据存储结构需要从分区表开始了解。一点类似一台电脑上挂载的硬盘一样。分区表保存 SPI flash 各区信息,包括引导程序、各种应用程序二进制文件、数据及文件系统等/*在Arduino环境中使用的flash布局 |----|-------|--------|-------|------
文章目录❤️UDP通信,客户端与服务器❤️?TCP与UDP优缺点☀️UDPClient —— 客户端请求1.1 创建STA模式1.2 激活station模式1.3 连接到您的WiFi网络1.4 检查连接是否建立1.5 创建socket对象1.6 构建ServerIP+ServerPort1.7 发起请求1.8 响应请求1.9 关闭socket✨UDPClient 示例本地局域网PC机构建UDPS
ESP32-BLE-Keyboard:打造你的无线蓝牙键盘项目地址:https://gitcode.com/T-vK/ESP32-BLE-Keyboard项目简介ESP32-BLE-Keyboard 是一个开源项目,它允许你利用Espressif Systems的ESP32微控制器,将其转化为一个功能完备的蓝牙低功耗(BLE)键盘。这意味着你可以将这个小巧的硬件设备连接到任何支持蓝牙输入的设备上,
转载 2024-08-22 22:34:06
544阅读
文章目录一、功能简介二、软件设计三、实验现象联系作者 一、功能简介本项目使用Proteus8仿真STM32单片机控制器,使用LCD1602液晶、矩阵按键、蜂鸣器、EEPROM模块、继电器模块等。系统运行后,LCD1602显示密码输入提示界面,系统存储在EEPROM的初始密码为123456, 用户可通过矩阵按键S1-S10输入数值0-9,当在密码输入过程中有误,可按S11键回删并重新输入。当密码输
转载 2024-06-16 13:21:21
428阅读
快速导读1、前言2、esp32_arduino_sqlite3_lib 库3、硬件说明4、API说明4.1 sqlite3_initialize —— 初始化Sqlite数据库引擎4.2 sqlite3_open —— 打开或创建一个 SQLite 数据库文件4.3 sqlite3_exec —— 执行 SQL 命令4.4 sqlite3_free —— 释放内存4.5 sqlite3_clos
转载 2024-06-14 17:31:15
328阅读
2.2 GATT (Generic Attribute Profile) GATT (通用属性配置) ,它定义两个 BLE 设备通过 Service 和 Characteristic 进行通信;GATT 就是使用了 ATT(Attribute Protocol)协议,ATT层定义了一个通信的基本框架,数据的基本结构,以及通信的指令,Service 和 characteristic 就是GATT层定
转载 2024-06-21 16:31:20
72阅读
  • 1
  • 2
  • 3
  • 4
  • 5