查看原文
其他

鸿蒙系统固件编译及烧写——通过AT命令完成WLAN模组Hi3861联网

程序员XiaoHa 嵌入式从0到1 2021-11-06

点击上方“嵌入式从0到1”,选择“置顶/星标公众号

干货福利,第一时间送达!

源码编译

IDE终端工具打开方法

使用OpenHarmony IDE工具DevEco的终端工具连接Linux服务器。(OpenHarmony IDE工具DevEco集成了终端工具的能力,基本使用请参考官方指导文档)依次点击“View”、“Terminal”,即可打开IDE终端工具。

ssh连接虚拟机

先启动虚拟机,然后在VS Code的终端(TERMINAL)界面输入如下指令:

ssh harmony@172.18.3.254

其中172.18.3.254为虚拟机Ubuntu Linux的IP,我们可以看到命令执行完毕之后,VS Code的终端进入了虚拟机的终端:

编译代码

在VS Code的终端界面输入如下指令:

python build.py wifiiot

注意: 要在 /home/harmony/harmony/code/code-1.0 目录下执行上面的指令。

编译结束后,如果出现“BUILD SUCCESS”字样,则证明构建成功。

构建成功后,使用指令:

ls -l out/wifiiot/

查看输出文件,会在./out/wifiiot/路径中生成以下文件,我们看到时间是刚刚编译的时间,说明没有问题,至此编译构建流程结束。

Ubuntu虚拟机中查看,下图中的目录和上图的目录两者是一样的。

固件下载

烧录Hi3861 WLAN模组固件可以通过OpenHarmony IDE工具DevEco完成,

固件下载过程

  1. 安装串口驱动

Hi3861 WLAN模组上面有一个Type C USB接口与CH340G芯片连接,实现了USB转串口功能。

我们使用USB线连接WLAN模组(需预先安装USB转串口驱动,安装时需要先连接模组,驱动下载地址:http://www.wch.cn/search?q=ch340g&t=downloads),Type C的另一端与USB口相连,然后在设备管理器中查看COM口,如USB-SERIAL CH340(COM3),该串口集成了烧录、日志打印、AT命令等功能。

  1. IDE烧录配置

串口烧录参数配置

  • Baud Rate:921600
  • Data bit:8

Burn Files选择

文件存放路径:

.\out\wifiiot\Hi3861_wifiiot_app_allinone.bin

上面截图,在Windows系统下直接打开了虚拟机中的文件,使用的是Samba服务器实现的,具体实现细节可以参考:

安装并配置Samba服务器--将HarmonyOS的文件映射到Windows 中

RISC-V系列代码烧录

点击下图中Burn右侧的三角按钮,进入烧写固件模式,稍后上面会弹出串口选择列表,选择对应的串口(我的机器使用COM3与Hi3861模块相连),如果环境搭建没有问题的话,即可完成固件的下载。

如果点击下载的三角按钮,出现下图所示错误:

根据错误提示,使用如下指令查找npm所在路径:

npm config get prefix

那么,我们在系统环境变量中添加:

NODE_PATH = C:\Users\Administrator\AppData\Roaming\npm\node_modules

即可。

测试WiFi模组

使用串口助手工具,连接Hi3861模组串口(我的机器是COM3),并配置好波特率115200,同时勾选“发送新行”,确保输入字符串以"\r\n"结尾,避免AT命令无法输入。

复位WLAN模组,终端界面显示“ready to OS start”,证明WiFi模组复位成功。

在窗口助手中,依次执行如下AT命令,使Hi3861模块启动STA模式,连接指定AP热点,并开启DHCP功能。

命令含义
AT+STARTSTA启动STA模式
AT+SCAN扫描周边AP
AT+SCANRESULT显示扫描结果
AT+CONN="SSID",,2,"PASSWORD"连接指定AP,其中SSID/PASSWORD为待连接的热点名称和密码
AT+STASTAT查看连接结果
AT+DHCP=wlan0,1通过DHCP向AP请求wlan0的IP地址
AT+IFCFG查看模组接口IP
AT+PING=X.X.X.X查看WLAN模组与网关联通是否正常,其中X.X.X.X需替换为实际的网关地址
在看,也是真爱😜 - END -



: . Video Mini Program Like ,轻点两下取消赞 Wow ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存