发帖
0 0 0

浅尝bouffalo_sdk

HEPPY
注册会员

2

主题

4

回帖

155

积分

注册会员

积分
155
Ai-M61系列 32 0 3 天前
[i=s] 本帖最后由 HEPPY 于 2026-4-20 13:46 编辑 [/i]

任务

编写一个小Demo,功能包括连接WiFi,TCP定时5S发送一包数据给到服务器。实时监听服务器下发的数据。

下载boffalo_sdk

boffalo_sdk注意: github可能打不开,多尝试几次,或者使用加速器(推荐)。

比心.jpg

了解SDK

SDKReadMe.png

进入SDK,找到README,从这里先去简单了解一下这里有什么,能做什么,需要什么环境。

  • 此次试验使用环境为 WSL2--Ubuntu下进行编译和使用。
    (PS:需要配环境的去B站搜索教程,从0开始的话,大概能在一个多小时就可以配置完成)

大概流程为

这个是⬆️前进,这个是⬇️后退,这是⬅️左横拉,这是➡️右横拉。
鼠标左边是开火👈🖱️👉右边是开镜。好了,这是donk。

donk.jpg

  • 把README都看一遍。很重要

好了你已经基本了解了这个SDK了。接下来我们出发进行测试。由于刚上手,所以推荐先使用一个和任务相接近的实例。在 ../examples/wifi/sta 中可以看到有个实例就是使用的TCP叫 wifi_tcp

实例wifi_tcp

wifi_tcp_readme.png
在终端打开文件夹,文件夹下有个README,里面有讲如何去使用这个make进行编译和烧录。我使用的Ai-M61-32S这个开发板就是例子中给的make,而make flash中COMX就是选择自己连接串口进行烧录。
详细烧录过程可以看上一篇 # Ai-M61-32S-Kit学习与使用 文章。

编译&烧录🔥

我们先不对程序进行任何修改,尝试先学会使用☺️

编译

start2make.png

电脑差点的话编译过程可能就会相对较慢。✅️等到出现 Built target combine就代表编译成功了。
这方面README真的看不来看不懂,就使用模块自己一点一点看着代码摸索,也是一样的。......... ✈️别问我为啥知道嘻嘻 :(

鬼脸.jpg

make_done.png
👍这样就是编译成功了,如果不成功的话 可能就是环境没有配置好,一般编译器会给出错误的。需要使用到 sudo apt等指令。👌

烧录

make2flash.png
🔥烧录,(o゜▽゜)o☆[BINGO!]
⚠️⚠️注意 和使用软件烧录步骤一样的,也是需要使用 长按IO2的同时,短按EN,再松开IO2才可以进入烧录模式⚠️⚠️
其实不用太着急按的,ENTER之后他有一段时间,也可能是我电脑的原因,够我按两三回。

make_flash_done.png

✅当出现 All programming completed successfully就代表烧录完成。

调试&理解代码

在README中可以看到连接实例

调试

Connect_bash.png

❗️❗️这里我连接是手机热点
❗️波特率改为 2000000

客户端&服务端☺️

init_code.png
这里我们需要两个模块同时烧录该程序🐷
📘一个作为服务端
📕一个作为客户端
先看看会发生什么

IP.png
🚨接下来就将一个设置为服务端,看前面的图就知道我要将 .25 的设置为服务端 另外一个就为客户端

server.png

  • 出现了 please connet... 就代表现在是服务器模式了

client.png

理解代码

🚨上图中我们可以看到客户端连接上服务器后,一直在向服务器发送消息
➡️而服务器则监听到客户端发送的消息并且打印出来消息的字节。
接下来尝试去代码中找到他们如何实现的。🥵

superchopper.jpg

寻找代码打印的位置

kown_code.png

在代码中,我们先从打印消息的位置找起❗️这样可以比较好理解的向前推代码的意思。

添加代码

⚠️任务中提到需要连接wifi

尝试去寻找wifi在哪里连接的,在README中写到了一个命令,看着像是SHELL命令。我直接使用Vscode查找整个工程文件。

  • 请确保包含这些头文件

 头文件参考.png

函数参考.png

  • 想要实现自动连接wifi,我们需要做到调用他底层的接口来连接,但是🚨有一点问题就是这种大项目,为了防止乱来的情况,很多接口都设置了static来修饰。
  • 那么好,❤️这里我们想要使用的shell命令经过我不懈努力,终于找到

shell.png
通过理解这个代码,我们就可以实现连接wifi了。☺️只需要这么写

call_wifi_connect_cmd.png

其实,看到这里会发现我还是在使用README中,本就实现的功能,我让代码自己跑起来而已😄😄

完善客户端&服务端

客户端

🏙在rx这里添加,打印服务端下发的消息

wifi_tcp_client_rx.png

🐱在tx这里添加,上传的数据包

wifi_tcp_client_tx.png

服务端

server_type.png

🎒在服务端代码中,添加打印消息,和下发消息

结束

🔍到此,任务中代码完整实现👇
编写一个小Demo,功能包括连接WiFi,TCP定时5S发送一包数据给到服务器。实时监听服务器下发的数据。

最终成果

the_last.png

总结

😍通过本次使用SDK,我发现在这种规范的文件中进行代码编写会相对容易很多。但是前提是需要理解到代码中各种api的作用位置甚至是如何调用的。不过也是可以自己添加函数进行调用。不过各个函数最好还是有个说明才好,不然在开发过程中可能会有很多不便之处。
🚨像是这次wifi的调用,寻找的时候花费了一番力气,只能知道是个shell命令。我将我写的代码文件放在这里,可以参考思考过程,不一定能看的懂,最后我才调用的shell_exec

──── 0人觉得很赞 ────

使用道具 举报

您需要登录后才可以回帖 立即登录
高级模式
返回
统计信息
  • 会员数: 30875 个
  • 话题数: 44836 篇