查看“基于上海乐鑫ESP系列的开发板”的源代码
来自Ubuntu中文
←
基于上海乐鑫ESP系列的开发板
跳到导航
跳到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
![微信图片\_20240902233048.jpg](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/bbd5838afcc94925b571808e19c87eaf~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgZmVmamxzZGZkZnN4:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiMTk0MzU5MjI4OTQ1MTg5NSJ9&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1726067633&x-orig-sign=SfzBQL6zqFJVZmAofUevGQIfhiM%3D) ![微信图片\_20240902233058.jpg](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/7179738620324ce1962790a1bc2db1b8~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgZmVmamxzZGZkZnN4:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiMTk0MzU5MjI4OTQ1MTg5NSJ9&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1726067633&x-orig-sign=2m4cbUW6pWDYD7bHkbgzkA%2BTKls%3D) ## ESPduino(ESP8266)/WeMos D1(ESP8266) //WeMos D1(ESP8266) 使用ESP-12F模组,SMD-22封装,而ESPduino使用安信可的ESP-13模组,SMD-18封装. <img src="https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/3746415d336544f0b301b301fe52656d~tplv-k3u1fbpfcp-jj-mark:0:0:0:0:q75.image#?w=901&h=1198&s=1199992&e=png&b=f0e9e8" width="40%"> ![OIP-C.jpg](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/f2814088724b4f97949c4c1937d7b569~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgZmVmamxzZGZkZnN4:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiMTk0MzU5MjI4OTQ1MTg5NSJ9&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1726067633&x-orig-sign=trMxGhRxyy7xC0TpIv3tM%2FDStfU%3D) //ESPDuino使用安信可的ESP-13模块(该模块使用ESP8266EX 芯片),该模块的pinout如下: <img src="https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/3ad1aa50fd1d4dc9b2329d7c400c65fc~tplv-k3u1fbpfcp-jj-mark:0:0:0:0:q75.image#?w=1587&h=1469&s=162526&e=png&b=fefefe" width="65%"> 标准arduino IDE开发ESPDuino,需要在“首选项”->"其他开发板管理器地址"下输入: \` <https://arduino.esp8266.com/stable/package_esp8266com_index.json> //ESPDuino使用ESP-13模块(很多书上误写为ESP-12模块) <img src="https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/41bc69e4571d4a4eb7630ec08fba5630~tplv-k3u1fbpfcp-jj-mark:0:0:0:0:q75.image#?w=1322&h=615&s=62414&e=png&b=f9f9f9" width="55%"> ESP-13模块的原理图: ![image](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/d25db74ac50d4daaaabbcd8197e366e9~tplv-k3u1fbpfcp-jj-mark:0:0:0:0:q75.image#?w=2095\&h=1637\&s=483546\&e=png\&b=fdfcfc) ## ESP32 ### 常用arduino库 | 名称 | 库头文件 | 用法 | 在ESP32上是否能使用 | | --------------------------------------------------------------------- | -------------------------------- | ------------------------------------------------------------------------------------- | ------------ | | debug库 | #include "Arduino\_DebugUtils.h" | <p>setup()阶段:Debug.timestampOn(); <br>loop()阶段:DEBUG\_INFO("i = %d,0x%02x", i,i);</p> | Y | | Serial Plotter库,Serial Plotter 可以将串口发送的数据以图表的形式显示出来,适合观察数据的变化趋势 | | | | | Debugger:这个库可以让你在 Arduino 程序中使用断点、单步执行等调试功能,就像在 PC 上使用集成开发环境调试程序一样。 | #include \<Debugger.h\> | | 有报错?? | | SimpleDebug:这是一个简单的调试库,它允许你通过串口发送调试信息,并且可以设置不同的调试级别。 | | | | | DebugLib:这个库为 Arduino 提供了一个简单而强大的调试功能,支持宏定义来启用或禁用调试代码,无需修改代码即可切换调试模式。 | | | | | <p>Logging | | | | 提供了日志功能,支持不同级别的日志输出,比如调试、信息、警告、错误等。 assert 虽然不是库,但 C++ 标准库中的 assert 宏可以在条件不满足时停止程序运行,是检查假设条件的好方法。 elibcppdbg 这个库提供了类似标准 C++ 库中的流输出功能,可以将信息输出到串口,方便调试。 NeoDebug 一个为 Arduino 设计的轻量级调试库,支持多种数据类型的输出,还可以自定义调试等级。 FPRETTY 一个简单的库,用于格式化串口输出,使得调试信息更加易于阅读。</p> | | | | \| | | | | \| | | | | \| | | | | ## AI回答 ### Q:arduino IDE编译不同开发板时,ino代码如何区分当前是哪种开发板 ### A: 在 Arduino IDE 中,当你选择不同的开发板时,编译器会包含对应开发板的特定头文件和定义,这允许你在代码中通过条件编译来区分当前是哪种开发板。以下是一些方法来区分不同的开发板: 1. **使用预定义的宏**: 每个开发板在编译时都会定义一些特定的宏,例如 `ARDUINO`,`ARDUINO_ARCH_{ARCH}` 和 `BOARD` 等。你可以通过这些宏来判断当前的板子。 ```cpp #ifdef ARDUINO_AVR_UNO // 代码专门为 Arduino Uno 编写 #elif defined(ARDUINO_SAM_DUE) // 代码专门为 Arduino Due 编写 #elif defined(ARDUINO_ARCH_ESP8266) // 代码专门为 ESP8266 编写 #elif defined(ARDUINO_ARCH_ESP32) // 代码专门为 ESP32 编写 #endif ``` 2. **检查`BOARD`宏**: `BOARD`宏通常包含了开发板的名称,你可以用它来区分不同的开发板。 ```cpp #if defined(BOARD) && (BOARD == "AVR_UNO" || BOARD == "AVR_MEGA2560") // 代码适用于 Uno 或 Mega2560 #elif defined(BOARD) && BOARD == "SAMD_ZERO" // 代码适用于 Zero 或 itsybitsy_m0 #endif ``` 3. **检查特定开发板的功能或引脚定义**: 某些开发板可能有特定的功能或引脚定义,你可以检查这些来区分开发板。 ```cpp #if defined(__AVR_ATmega328P__) // 代码专门为基于 ATmega328P 的开发板编写 #elif defined(__SAM3X8E__) // 代码专门为基于 SAM3X8E 的开发板编写 #endif ``` 4. **自定义宏**: 在项目的 `platform.local.txt` 或 `boards.txt` 文件中,你可以为特定的开发板定义自定义宏。然后在代码中使用这些宏。 5. **使用`pins_arduino.h`文件**: 每个 Arduino 开发板都有自己的 `pins_arduino.h` 文件,定义了该板的引脚映射。虽然这个文件通常不直接在 `.ino` 文件中使用,但你可以通过包含它来获取板级信息。 ```cpp #include <pins_arduino.h> #if defined(PIN_A0) // 根据引脚定义区分 #endif ``` 使用这些方法,你可以在 `.ino` 文件中根据不同的开发板编写特定的代码段,从而确保代码可以在不同的硬件平台上正确运行。记得在编写条件编译代码时,始终要有一个默认的路径,以处理未定义的情况。
返回
基于上海乐鑫ESP系列的开发板
。
导航菜单
页面操作
页面
讨论
阅读
查看源代码
历史
页面操作
页面
讨论
更多
工具
个人工具
登录
导航
首页
最近更改
随机页面
页面分类
帮助
搜索
编辑
编辑指南
沙盒
新闻动态
字词处理
工具
链入页面
相关更改
特殊页面
页面信息