【HarmonyOS之旅】破冰Hi3861


| 与君初相识

作为小A的 HarmonyOS 之旅的第一站:Hi3861 - WiFi IoT,到现在为止我们还没有跟它正式见面。那么接下来,我们就先来个破冰吧。

【HarmonyOS之旅】破冰Hi3861_第1张图片

这个就是我们的主角。As usual,通常我们拿到一块板子之后,我们第一件是什么?没错,就是有串口的串口,有屏幕的接屏幕,然后上电先玩一下。那么我们先给 3861 接个打印,上个电先。

| 如何接打印

接法一

板卡板载一颗CH340G做了 usb-ttl 之间的转换,因此我们可以直接通过type-c口即可以完成供电又可以完成串口通信。

一般情况下,我们使用串口的时候是先配置并打开好串口终端后,然后再给设备上电启动,这样的好处是我们首次上电就可以捕捉到所有的开机输出信息了。

但是这里板载usb转ttl的设计带了一个弊端,那就是必须先给板子通电,否则对应的端口就没有办法正确打开,我们就不能预先打开并设置好串口,从而捕获所有的信息了,必须reset一下。

接法二

这里小A提供了另一种方案,适合嵌入式开发的小伙伴,因为需要借助人手必备的usb装ttl小板,对,没错,就是大家常见的这种土豪金.

【HarmonyOS之旅】破冰Hi3861_第2张图片

小A用的是

【HarmonyOS之旅】破冰Hi3861_第3张图片

在硬件设计上Hi3861的打印uart的Rx和Tx其实并不是直接布线到Ch340G的引脚上完成电气连接,而是通过跳帽完成的,细心的小伙伴,通过上面的板卡图就可以发现。这里设计的左边一列是CH340G的引脚排针,右边一列是Hi3861的引脚排针。因此我们要做的就是把右边一列正确的对应连接到土豪金上。这里根据小A的实验,右边从上到下分别是Tx和Rx。当然这里的Gnd可以视情况而定,由于小A的土豪金和type-c是接在同一个hub上的,那么其实就可以不接的,因为本身已经是供地的。当然咯,这个其实并不规范,最好还是接上Gnd,养成习惯。

The next

ok。现在我们就上电吧。

【HarmonyOS之旅】破冰Hi3861_第4张图片

ok,到这里基本上就代表着uart连接正确了。在这里小A要补充一下:不知道大家还记不记得在之前我有提到过

伴随这个现象的同时,偶尔也会不弹出无法识别usb设备的黄色警告,必须得重新插拔hub,这样的体验可太糟糕了!!!!!

But,自从小A使用第二种外接土豪金的方法后,这个困扰小A的问题就再也没有出现过啦,因此小A觉得,这个品控或者选料或者设计还是有可优化的地方的,小A这里就不继续探究了,留待有缘人吧。

| 自我介绍

now,回到正题。上图就是开机的所有打印了,很简短的一段话,我们来看看有什么Hi3861的自我介绍说了什么。

//上来就是os start,似乎表明下面全是HarmonOS的内容了,不包含bootloader的引导过程,和linux有点区别,倒是有一点点像liteos的mini-boot的风格。
ready to OS start   
//SDK版本以及Time:这个风格好像liteos啊
sdk ver:Hi3861V100R001C00SPC025 2020-09-03 18:10:00
//有文件系统挂载。
FileSystem mount ok.
// 有wifi
wifi init success!


//有日志管理模块
00 00:00:00 0 132 D 0/HIVIEW: hilog init success.
00 00:00:00 0 132 D 0/HIVIEW: log limit init success.


//不知道是不是前端开发所说的bootstrap框架
00 00:00:00 0 132 I 1/SAMGR: Bootstrap core services(count:3).


//启动了若干服务
00 00:00:00 0 132 I 1/SAMGR: Init service:0x4ae4fc TaskPool:0xfa1e4
00 00:00:00 0 132 I 1/SAMGR: Init service:0x4ae520 TaskPool:0xfa854
00 00:00:00 0 132 I 1/SAMGR: Init service:0x4ae630 TaskPool:0xfaa14
00 00:00:00 0 164 I 1/SAMGR: Init service 0x4ae520  success!
00 00:00:00 0 64 I 1/SAMGR: Init service 0x4ae4fc  success!


//不知道和手机的hiview是不是同样用来管理数据流量和电池电量的
00 00:00:00 0 8 D 0/HIVIEW: hiview init success.


//又启动了若干服务
00 00:00:00 0 8 I 1/SAMGR: Init service 0x4ae630  success!
00 00:00:00 0 8 I 1/SAMGR: Initialized all core system services!
00 00:00:00 0 64 I 1/SAMGR: Bootstrap system and application services(count:0).
00 00:00:00 0 64 I 1/SAMGR: Initialized all system and application services!
00 00:00:00 0 64 I 1/SAMGR: Bootstrap dynamic registered services(count:0).

大致上我们目前能知道的信息就这么多了,这里已经留下了几个疑问,暂时先不管,后面我们再慢慢探究。

| 有来必有往

ok,到这里的话,上面Hi3861的自我介绍已经结束了,那么接下来我们是不是要展现一下我们的友好,响应一下它?那么先在终端中敲个回车看看?

【HarmonyOS之旅】破冰Hi3861_第5张图片

Excuse me?怎么全是Error?不要紧张,因为Hi3861作为一个定位为wifi iot的产品,它既没有跑linux,也不是liteos,所以也是没有shell的。通过串口终端,它只支持部分AT命令,如果输入不符合它的解析规则的话,要么是ERROR,要么是无响应只有输入回显。而且它的回车换行也是有讲究的,比如小A的Mobaxterm发送AT命令就不行,只能卡在字符后面毫无反应。

【HarmonyOS之旅】破冰Hi3861_第6张图片

怎么办?先切换到vscode下

【HarmonyOS之旅】破冰Hi3861_第7张图片

如上配置后就可以正常输入命令了,原因就在于换行符是不是“\r\n”,MobaXterm的换行符默认是’\r‘,所以会有些异常。

如果你的常用工具的效果和小A是一样的话,如果可以配置换行的话,那就配置一下,如果不能的话,要么选用vscode ,要么就等待下一期看小A怎么折腾吧。放弃mobaxterm是不可能的,这辈子都不可能。有了大彩电,谁还看熊猫啊,是也不是?????

| 总结

Hi3861的破冰行动,大致上就到这里啦。下一篇小A就会开始和Hi3861的相爱相杀啦,先来改造一下它的换行如何?


关注本号,资料更新第一时间推送

【HarmonyOS之旅】破冰Hi3861_第8张图片

你可能感兴趣的:(嵌入式,物联网,串口通信,adb,uart)