[文章][HarmonyOS之旅] Chapter4 - 破冰Hi3861

阅读量0
0
3
大家好,我是小A。从这篇开始我们要开始进入正轨了。与君初相识:
作为小A的HarmonyOS之旅的第一站:Hi3861 - WiFiIot,到现在为止我们还没有跟它正式见面。那么接下来,我们就先来个破冰吧。
这个就是我们的主角。As usual,通常我们拿到一块板子之后,我们第一件是什么?没错,就是有串口的串口,有屏幕的接屏幕,然后上电先玩一下。那么我们先给3861接个打印,上个电先。
如何接打印:接法一:
板卡板载一颗CH340G做了u***-ttl之间的转换,因此我们可以直接通过type-c口即可以完成供电又可以完成串口通信。
一般情况下,我们使用串口的时候是先配置并打开好串口终端后,然后再给设备上电启动,这样的好处是我们首次上电就可以捕捉到所有的开机输出信息了。
但是这里板载u***转ttl的设计带了一个弊端,那就是必须先给板子通电,否则对应的端口就没有办法正确打开,我们就不能预先打开并设置好串口,从而捕获所有的信息了,必须reset一下。
接法二:
这里小A提供了另一种方案,适合嵌入式开发的小伙伴,因为需要借助人手必备的u***装ttl小板,对,没错,就是大家常见的这种土豪金,

在硬件设计上Hi3861的打印uart的Rx和Tx其实并不是直接布线到Ch340G的引脚上完成电气连接,而是通过跳帽完成的,细心的小伙伴,通过上面的板卡图就可以发现。这里设计的左边一列是CH340G的引脚排针,右边一列是Hi3861的引脚排针。因此我们要做的就是把右边一列正确的对应连接到土豪金上。这里根据小A的实验,右边从上到下分别是Tx和Rx。当然这里的Gnd可以视情况而定,由于小A的土豪金和type-c是接在同一个hub上的,那么其实就可以不接的,因为本身已经是共地的。当然咯,这个其实并不规范,最好还是接上Gnd,养成习惯。
The next:
ok。现在我们就上电吧。
ok,到这里基本上就代表着uart连接正确了。在这里小A要补充一下:不知道大家还记不记得在之前我有提到过
伴随这个现象的同时,偶尔也会不弹出无法识别u***设备的黄色警告,必须得重新插拔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 <time: 0ms> success!
00 00:00:00 0 64 I 1/SAMGR: Init service 0x4ae4fc <time: 0ms> 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 <time: 0ms> 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的自我介绍已经结束了,那么接下来我们是不是要展现一下我们的友好,响应一下它?那么先在终端中敲个回车看看?
Excuse me?怎么全是Error?不要紧张,因为Hi3861作为一个定位为wifi iot的产品,它既没有跑linux,也不是liteos,所以也是没有shell的。通过串口终端,它只支持部分AT命令,如果输入不符合它的解析规则的话,要么是ERROR,要么是无响应只有输入回显。而且它的回车换行也是有讲究的,比如小A的Mobaxterm发送AT命令就不行,只能卡在字符后面毫无反应。
怎么办?先切换到vscode下
如上配置后就可以正常输入命令了,原因就在于换行符是不是“rn”,MobaXterm的换行符默认是’r‘,所以会有些异常。
如果你的常用工具的效果和小A是一样的话,如果可以配置换行的话,那就配置一下,如果不能的话,要么选用vscode ,要么就等待下一期看小A怎么折腾吧。放弃mobaxterm是不可能的,这辈子都不可能。有了大彩电,谁还看熊猫啊,是也不是?

回帖

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
链接复制成功,分享给好友