各位开发者们!👋
想象一下:你刚买了一块闪亮的新开发板。它支持双频WiFi、BLE 5.0,搭载强大的ARM Cortex-M33处理器,还兼容Arduino。你激动不已,准备大展身手打造下一个重磅IoT产品。但当你打开文档时...却发现一团糟。资料零散不全,你花在查找信息上的时间比实际编码还多。
听起来很熟悉吧?没错,这就是我在使用AMB25/AMB26(瑞昱RTL8720DF)开发板时的真实经历。
于是,我做了任何稍有挫败感的开发者都会做的事——自己制作了一份完整的参考指南。今天,我就把它分享给大家!
🔗 项目仓库GitHub地址: https://github.com/nityam2007/AMB25-reference
欢迎Star、Fork、参与贡献。让我们共同打造这份本应从一开始就存在的资源。
等等,AMB25到底是什么?
问得好!AMB25是一款基于瑞昱RTL8720DF芯片的开发板。它的规格其实相当令人印象深刻:
- CPU: 200MHz的ARM Cortex-M33(对微控制器来说速度很快!)
- RAM: 512KB
- Flash: 4MB(其中2MB可用于存储你的代码)
- WiFi: 支持2.4GHz和5GHz双频(802.11 a/b/g/n)
- 蓝牙: BLE 5.0
- 尺寸: 小巧的50.7 × 17.8 mm规格
- USB: Type-C接口(终于用上了可正反插的接口!)
可以把它想象成ESP32那位很酷但家族聚会上没人谈论的"表亲"。
我为什么要制作这份参考指南
关于AMB25,情况是这样的——它确实是一块扎实的板子。在这个价位提供双频WiFi实属罕见。BLE 5.0很棒。200MHz的处理器速度很快。但它的文档?只能说还有很大的改进空间。
我曾经不得不频繁地在以下来源间切换:
- 2021年的论坛帖子,内容可能早已过时
- 零散的代码示例,甚至无法编译通过
- 需要放大镜和运气的引脚定义图
- 默认你已无所不知的API参考文档
在我第五次搜索"AMB25如何连接WiFi"却得到五种不同答案后,我"爆发"了。不是消极的爆发,而是"让我来解决这个问题"的爆发。
参考指南包含哪些内容?
我试图涵盖你真正需要的一切:
📍 完整的GPIO参考
每一个引脚都涵盖了。包含真正有用的信息,例如:
- 哪些引脚支持PWM
- 哪些引脚具有ADC功能
- 每个引脚与其他功能的复用情况(避免资源冲突)
- 常见用例的推荐引脚
以下是引脚定义表示例:
| 引脚编号 | GPIO | ADC | PWM | UART | SPI | I2C |
|---|---|---|---|---|---|---|
| 0 | PA15 | SPI1_SS | ||||
| 6 | PA26 | ✓ | I2C_SDA | |||
| 7 | PA25 | ✓ | I2C_SCL | |||
| 11 | PB1 | A4 |
再也不用猜每个引脚是干什么的了!
📶 真正可用的WiFi示例
包含2.4GHz和5GHz示例。Station模式。AP模式。扫描网络。真正能连接到你家WiFi,而不是耗费三小时。全部经过测试,全部可用。
🔌 串口通信
你知道AMB25有三个UART接口吗?我原来也不知道!直到我凌晨两点仔细查阅数据手册。现在你不需要再这样做了:
Serial— USB串口(用于串口监视器)Serial1— 硬件UART1(引脚PB19/PB18)Serial2— 硬件UART2(引脚PA12/PA13)
💾 Flash存储
如何使用FlashMemory保存断电不丢失的数据。因为有时候设备需要"记住"一些东西。
🐛 常见问题与解决方法
光是这个部分可能就为我节省了数小时的折腾时间:
- "上传失败!" — 尝试按住Burn按钮的同时按下Reset键,然后同时释放。再进行上传。
- "串口监视器显示乱码!" — 将波特率设置为115200。
-
"无法连接到5GHz WiFi!" — 确保你使用了正确的信道。某些地区会限制特定的5GHz信道。
-
- *
通常,给AMB25上传代码需要执行一套复杂的操作:
- 按住Burn按钮
- 按下Reset键
- 释放两个按钮
- 在Arduino IDE中快速点击Upload
- 祈祷时机把握正确
但你猜怎么着?其实有一个自动上传模式!只需在Tools → Auto Upload Mode → Enable中启用它,板子就会自动处理上传过程。简直太震撼了。
为什么这不是默认设置?为什么产品页面上没有用加粗大字标明?我不知道。但现在你知道了!
代码片段:连接WiFi
这里有一个快速上手的代码片段:
```c++
include <WiFi.h>char ssid[] = "你的网络名称";
char pass[] = "你的密码";
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, pass);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\n已连接!");
Serial.print("IP地址: ");
Serial.println(WiFi.localIP());
}
void loop() {
// 你牛逼的代码写在这里
}
很简单,对吧?这正是整个参考指南的目标——让事情变得简单且真正可用。
* * *
## 参与贡献
这份参考指南是开源的(显而易见)。如果你发现了错误、有更好的示例,或者发现了AMB25一些隐藏功能——请务必参与贡献!可以提交Issue、Pull Request,或者直接留言。
我特别希望了解:
* 我尚未覆盖的边缘案例
* 你用AMB25完成的项目
* 让你感到困惑、需要我进一步澄清的地方
* * *
## 最后总结
AMB25/AMB26确实是一块被低估的开发板。双频WiFi、BLE 5.0、Arduino兼容、USB-C——它满足了很多条件。唯一拖后腿的就是文档,希望这份参考指南能有所帮助。
如果你正在使用这些开发板,不妨看看这份指南。如果它对你有用,请在仓库点个Star。如果发现任何问题,请告诉我!
**📚 完整参考指南:** <https://github.com/nityam2007/AMB25-reference>
祝编程愉快!🚀
* * *
_附:如果瑞昱的哪位同仁正在读这篇文章...请改进你们的文档。不过,硬件还是很棒的。❤️_
共同学习,写下你的评论
评论加载中...
作者其他优质文章