前言:最近参加了论坛的星闪模组WS8204开发板测评活动,这块板子上面的模组是来自成都无声讯通科技,该模组支持 SLE 1.0 协议、BLE 5.4 协议、主频 64MHz,外设接口也很丰富usb、spi、uart、pwm、i2c、i2s等等,但是说到星闪,因为这个技术比较nx,所以对于个人开发者来讲,目前几乎没有开源的sdk,资料比较完善的应该是小熊派和安信可,可以在半开源的sdk里面自己开发一些简单功能,但是目前基本上都是通过at的方式来进行二次开发多,芯片本身性能也不弱,还要外挂一个mcu来控制它,想想就非常挠头。
可以看到模组的性能还是挺不错的,各种外设也比较齐全,该有的都有。
这里是对于开发板的描述,我们需要关注的是1和2号的usb口,1号L-UART是用来打印调试信息烧录程序的,2号是我们用来发送AT指令的串口,还有一个复位键,可以用来复位mcu,其余的我们也用不到。
我们把L-UART和电脑连接,打开串口工具可以看到芯片输出的打印信息,软件版本啥的。
我们重点关注2号串口,使用数据线接入,打开串口工具,发送AT,可以看到开发板返回OK,说明通信正常。
这开发文档中可以看到对开发板支持的AT指令
我们重点关注以下几条指令:
AT+SROLE ✕ ✓ ✓ ✓ 查询或设置 SLE 角色
AT+SDISC ✓ ✕ ✓ ✕ 断开连接
AT+SSEND ✓ ✕ ✓ ✕ 发送数据
下面我们将尝试星闪连接,首先我们需要设置一块开发为从机模式,一块为主机,使用AT+SROLE=1设置一个开发板为主机,因为他们默认都是从机,所以我们只设置一块就可以。
我们重启开发板,他们会自动连接,并显示mac地址。
使用AT+SSEND命令发送数据,如:AT+SSEND=0,5 0是连接id,后面的是要发送数据的长度,等待开发板回应,接下来就可以发送数据了
在另外一个串口工具可以看到我们发送过去的数据,格式和发送类似,以+SRD开头,其余与发送一样,到这里我们就成功连接并且发送数据。
为了节约时间,楼楼直接使用micropyton来进行演示星闪远程控制,我们在串口接收到数据之后对数据进行判断,只有以+SRD开头的数据我们才处理,其余略过,然后进一步判断接收到的数据,如果是我们自己设定的指令,就对其进一步操作。
可以看到,在接收到星闪发送来的数据后实现了点灯的操作,到这里我们就成功使用两块星闪开发板之间通信,由于AT的简便性,我们很容易就可以实现这个功能。
效果演示:
总结:在本次,我们顺利使用WS8204开发板的星闪功能进行了远程控制点灯操作,使用AT的开发方式虽然简便,但是局限性太多,并且还会增加硬件的成本。
下面都是本人瞎胡闹,仅供参考,最后楼楼简单的使用两块板子测试了一下通信距离,一块板循环发送auto0这个数据,单片机在接收到后就会翻转2812的状态,发现和蓝牙差不多(和楼楼家里另外一个自己做的东西比较的,都是pcb板载天线,星闪可能远个几米,在隔了一面墙的情况下不足50米就会收不到数据,如果想再远估计就得换天线了),好啦,以上就是楼楼本次的分享,谢谢观看,再见!