ESP32硬件检测程序
ESP32硬件检测程序提示这里可以添加系列文章的所有文章的目录目录需要自己手动添加例如第一章 Python 机器学习入门之pandas的使用提示写完文章后目录可以自动生成如何生成可参考右边的帮助文档文章目录ESP32硬件检测程序前言一、ESP32硬件信息查询二、外部硬件检测前言提示这里可以添加本文要记录的大概内容例如随着人工智能的不断发展机器学习这门技术也越来越重要很多人都开启了学习机器学习本文就介绍了机器学习的基础内容。提示以下是本篇文章正文内容下面案例可供参考一、ESP32硬件信息查询以下是一个基于 Arduino 框架的完整示例程序它可以识别并输出 ESP32 的主要硬件特征ESP32 硬件自我识别程序 (Arduino 框架)此代码适用于 ESP32, ESP32-S2, ESP32-S3, ESP32-C3, ESP32-C6 等系列。#includeArduino.h#includeesp_system.hvoidsetup(){Serial.begin(115200);while(!Serial);// 等待串口连接 (部分板子需要)Serial.println( ESP32 硬件识别报告 );// 1. 识别芯片型号Serial.print(芯片型号: );Serial.println(ESP.getChipModel());// 2. 识别芯片修订版本Serial.print(芯片修订: Rev );Serial.println(ESP.getChipRevision());// 3. 识别核心数量Serial.print(CPU 核心数: );Serial.println(ESP.getChipCores());// 4. 识别 CPU 频率 (MHz)Serial.print(CPU 频率: );Serial.print(ESP.getCpuFreqMHz());Serial.println( MHz);// 5. 获取 MAC 地址 (唯一硬件标识)Serial.print(MAC 地址: );uint8_tmac[6];esp_read_mac(mac,ESP_MAC_WIFI_STA);// 读取 WiFi STA MACfor(inti0;i6;i){if(i5)Serial.printf(%02X:,mac[i]);elseSerial.printf(%02X,mac[i]);}Serial.println();// 6. 识别 Flash 大小 (需结合分区表此处为估算或读取ID)// 注意ESP.getFlashChipSize() 返回的是根据分区表配置的大小不一定是物理最大值Serial.print(Flash 大小 (逻辑): );Serial.print(ESP.getFlashChipSize());Serial.println( bytes);Serial.print(Flash 速度: );Serial.print(ESP.getFlashChipSpeed());Serial.println( Hz);// 7. PSRAM 检测Serial.print(PSRAM 状态: );if(psramFound()){Serial.print(已发现, 大小: );Serial.print(ESP.getPsramSize());Serial.println( bytes);}else{Serial.println(未发现);}Serial.println();}voidloop(){// 无需循环操作delay(10000);}函数作用备注ESP.getChipModel()返回芯片具体型号字符串如 “ESP32-S3”, “ESP32-C3” 等是区分硬件最直观的方法ESP.getChipCores()返回核心数单核 (1) 或 双核 (2)esp_read_mac()读取出厂烧录的唯一 MAC 地址可用于设备唯一性标识psramFound()检查是否挂载了 PSRAM很多 AI 或图像项目依赖此功能ESP.getFlashChipSize()获取当前配置的 Flash 大小受partition.csv影响二、外部硬件检测如果你的需求是 ESP32 去扫描和识别外部连接的设备例如 I2C 传感器则需要使用总线扫描程序。以下是 I2C 扫描仪 代码用于识别连接到 SDA/SCL 引脚的传感器#includeArduino.h#includeesp_system.h#includeWire.hvoidsetup(){Wire.begin();Serial.begin(115200);while(!Serial);Serial.println(\nI2C 硬件扫描仪);}voidloop(){byte count0;Serial.println(正在扫描 I2C 总线...);for(byte address1;address127;address){Wire.beginTransmission(address);byte errorWire.endTransmission();if(error0){Serial.print(发现设备地址: 0x);if(address16)Serial.print(0);Serial.println(address,HEX);count;}}if(count0){Serial.println(未发现任何 I2C 设备。);}else{Serial.print(共发现 );Serial.print(count);Serial.println( 个设备。);}delay(5000);// 每5秒扫描一次}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2418840.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!