harmonyos 电脑服务器开发:HarmonyOS物联网开发板试用小计
harmonyos 电脑服务器开发:HarmonyOS物联网开发板试用小计✓ QFN32 封装,4mm x 4mm芯片外观开发板淘宝地址:https://item.taobao.com/item.htm?id=635868903111以下是它的一些功能简介:
Neptune HarmonyOS物联网开发板试用小计
最近华为的鸿蒙系统宣传得很火,因此淘宝上也出现了一些搭载鸿蒙系统的芯片和开发板。
我今天要推荐的是润和退出的一款低价的开发板,Neptune物联网开发板,产品描述如下:
这款开发板同时支持蓝牙和wifi,但价格只需要9.9,这在同类产品中,简直是性价比的存在,必须盘它。
开发板淘宝地址:
https://item.taobao.com/item.htm?id=635868903111
以下是它的一些功能简介:
芯片外观
✓ QFN32 封装,4mm x 4mm
◼ MCU 特性
✓ 集成 32 位 XT804 处理器,工作频率 240MHz,内置 DSP、浮点运算单元与安全引擎
✓ 内置 2MB Flash,288KB RAM
✓ 集成 5 路 UART 高速接口
✓ 集成 2 路 16 比特 SD-ADC,最高采样率 1KHz
✓ 集成 1 个 I2C 控制器
✓ 集成 GPIO 控制器,最多支持 18 个 GPIO
✓ 集成 5 路 PWM 接口
✓ 集成 1 路 Duplex I2S 控制器
◼ 安全特性
✓ MCU 内置 Tee 安全引擎,代码可区分安全世界/非安全世界
✓ 集成 SASC/TIPC,内存及内部模块/接口可配置安全属性,防止非安全代码访问
✓ 启用固件签名机制,实现安全 Boot/升级
✓ 具备固件加密功能,增强代码安全
✓ 固件加密密钥使用非对称算法分发,增强密钥安全性
✓ 硬件加密模块:RC4256、AES128、DES/3DES、SHA1/MD5、CRC32、2048 RSA 真随机数发生器
◼ Wi-Fi 特性
✓ 支持 GB15629.11-2006,IEEE802.11 b/g/n
✓ 支持 Wi-Fi WMM/WMM-PS/WPA/WPA2/WPS
✓ 支持 EDCA 信道接入方式
✓ 支持 20/40M 带宽工作模式
✓ 支持 STBC、GreenField、Short-GI、支持反向传输
✓ 支持 AMPDU、AMSDU
✓ 支持 IEEE802.11n MCS 0~7、MCS32 物理层传输速率档位,传输速率最高到 150Mbps
✓ 2/5.5/11Mbps 速率发送时支持 Short Preamble
✓ 支持 HT-immediate Compressed Block Ack、Normal Ack、No Ack 应答方式
✓ 支持 CTS to self
✓ 支持 Station、Soft-AP、Soft-AP/Station 功能
◼ 蓝牙特性
✓ 集成蓝牙基带处理器/协议处理器,支持 BT/BLE 双模工作模式,支持 BT/BLE4.2 协议
◼ 电源管理
✓ 3.3V 单电源供电
✓ 支持 Wi-Fi 节能模式功耗管理
✓ 支持工作、睡眠、待机、关机工作模式
✓ 待机功耗小于 10uA
买来后,上网查看了一些资料,基本都是教你如何烧写鸿蒙系统到开发板上的,至于鸿蒙的系统代码,在gitee.com上也能下载到。
但通过查看鸿蒙的开源代码,发现只有一些基础功能,而且文档非常不完善。
但通过对这款开发板进行了解,发现它使用的是联盛德的w800芯片,至于这个联盛德和它的w系列芯片。这个公司还有一款比较出名的wifi芯片w600 也是性价比杀手。
联盛德关于w800的详细介绍:
http://www.winnermicro.com/html/1/156/158/558.html
通过它的官网了解到,这款芯片的资料和开发工具是及其完善的,而润和提供的鸿蒙系统也是建立在它提供的SDK之上。
如果你按照网上提供的教程,我觉得你会走很多弯路,我这里讲解如何通过联盛德提供SDK和工具来玩转这块开发板。
准备工作
首先,我们要安装w800的编译工具,它可以在windows和linux下编译,官方建议在linux上开发,效率会比windows下快很多,我们这里是在windows测试的。
在“开发工具”栏下载cygwin4wm_setup_v1.1.1.rar,然后进行安装。
编译工具安装完成后,下载SDK:
请下载最新版本的。
然后需要下载一个烧录工具,虽然官方提供了一个,但我没用烧录成功过,查看官网文档,它也建议你使用SecureCRT。
这个工具可以在百度找到,下载下来就可以使用了。
让我们点亮一展小灯吧
在这个例子中,我们将打开芯片的蓝牙功能,然后通过手机发送指令给芯片,然后芯片控制灯的开关。
首先,我们找到一张ardunio控制小灯的连线图:
我们开发板的实际连线图:
我们用VS.CODE打开w800的SDK目录像下面这样:
关于w800SDK的目录和详细功能,请参考它的文档,我们这里不在描述,我们这里直接讲解要修改哪些地方来完成我们的功能。
首先,我们打开app/main.c文件,屏蔽掉CreateDemoTask()这段代码,这段代码是它原来测试芯片所有功能的。
我们这里只需要开启蓝牙功能就可以了,于是添加
Demo_bt_enable()
蓝牙开启后,我们需要建立一个蓝牙服务器来接收手机发送过来的指令,而蓝牙是否建立成功的状态返回是在/src/app/bleapp/wm_bt_app.c文件中:
将tls_ble_server_demo_api_init的注释去掉,另外它的参数是一个回调函数,用于出来手机发送过来的消息,因此我们这里要编写自己的回调函数,像下面这样:
在这段代码中,我们使用了芯片的PB2 然后设置它为输出,如果蓝牙收到的指令为0x11就关闭灯,其它就开启灯。
到这里,我们的代码就改完了。
代码编译和烧录
代码编译分成两部分,一种是应用级的,一种是它的lib的编译。这里有一些区别,首先是lib的编译,如果你修改了src/app下的东西,它会编译成lib文件,然后应用层会加载这些lib进行编译。
因此像我们上面这种就是修改了lib,因此需要在src/app目录上点击右键,然后选择cygwin进行编译 这些编译好的lib在下面这个路径:
而我们应用程序加载的目录在这里:
因此,我们需要将我们刚才编译好的libapp.a拷贝到后面这目录中,这样我们的程序修改才能成功。
烧写开发板程序
安装完烧写工具后,下面我们开始来进行烧录工作,大概烧写步骤如下:
4.1 打开烧录工具SecureCRT:
4.2 配置烧录工具:
【注意事项】
●在Protocal选择Serial(选Serial表示串口烧录)
●Flow Control不要勾选(勾选了不能显示烧录过程)
●确保左侧“设备管理器”的USB-SERIAL和右侧“SecureCRT”的Port保持一致。(不一致就无法打开指定的串口)
●另外,Baud rate选115200(代表该串口的烧录速率)
看图配置更清晰。配置完成后,点击Connect,如图:
4.3 确认烧录工具与开发板连接:
4.4 测试开发板连接情况:鼠标点击SecureCRT窗口,后续“ESC 开发板复位键RST”才能被捕获。
4.5 开始烧录:先按住电脑上的“ESC”键不放。单击Neptune开发板的复位(RST)键。
当如下图所示 “cccccccccc”时 表示进入烧录状态,可松开电脑键盘的“ESC”键。
选择“Transfer ->Send Xmodem”,进入烧录界面,如图:
选择之前下载的压缩包中的“bin/w800/w800.fls”,点击“Send”,如图:
烧录过程中,如下图所示,会显示烧录进度。
【请注意】过程中不要随便点击该页面以免过程中断
烧录完成后,如图所示,进度100%,表示烧录成功:
单击Neptune开发板的复位(RST)键,退出烧录模式:
至此,我们已经完成了所有烧录操作。
手机安装 nRF Connect(从应用商店下载即可),手机打开蓝牙,使用 nRF connect 扫描到设备(名称默认为WM-XX:XX:XX,即模块 mac 后六位),App 连接设备。
App 点击查看 service:
App 点击向上箭头,写特征值
点击 SEND 后,uart0 打印 app 发的数据:###write cb12;
参考资料
https://www.cnblogs.com/doiting/p/14109197.html
https://www.cnblogs.com/doiting/category/1895997.html
https://www.cnblogs.com/HarmonyOS/p/14737966.html
https://gitee.com/wendal/wm_sdk_w800
http://www.winnermicro.com/html/1/156/158/558.html