结论
成功通过两个星闪开发板 E528H-WS63 实现星闪通信。一方不断广播,另一方不建立连接,只接收数据。测试表明工作电流约50mA。星闪本身挺好的,但开发环境非常不友好。
安装
官方教程地址:tools · HiSpark/fbb_ws63 - 码云 - 开源中国
https://gitee.com/HiSpark/fbb_ws63/tree/master/tools
本教程基于windows环境(编译慢极了,关了杀毒软件加速也慢),跟随教程安装:tools/HiSparkStudio工具下载及安装.md · HiSpark/fbb_ws63 - Gitee.com
https://gitee.com/HiSpark/fbb_ws63/blob/master/tools/HiSparkStudio%E5%B7%A5%E5%85%B7%E4%B8%8B%E8%BD%BD%E5%8F%8A%E5%AE%89%E8%A3%85.md
总共需要: fbb_ws63 软件包、HiSpark Studio (vscode同款) 、 Python 3.11.4 和 4 个python库

跑示例
打开 HiSpark Studio 并新建工程


找到sle(星闪)例程
sdk 路径:fbb_ws63-master\src\application\samples\bt\sle
接收端代码为 sle_speed_client.c
广播端代码为 sle_speed_server_adv.c
星闪协议说明:
星闪广播端修改例程sle_speed_server_adv.c :
按照标准的协议,需要如官网所示的格式

自己自由使用的情况下可以很简单而且没有31字节限制,修改g_sle_announce_data为你想要的
uint8_t g_sle_announce_data[] = {
'F','r','e','e',' ','P','a','l','e','s','t','i','n','e',
'8',' ','x','i','a','o',' ','s','h','i',' ','g','o','n','g',' ','z','u','o',' ','z','h','i'
};// 37 个字节
星闪接收端修改例程sle_speed_client.c:
更改例程的sle_sample_seek_result_info_cbk,搜索到星闪广播设备后从串口打印结果
void sle_sample_seek_result_info_cbk(sle_seek_result_info_t *seek_result_data)
{
if (seek_result_data != NULL) {
// 打印设备MAC地址
osal_printk("Found device: %02X:%02X:%02X:%02X:%02X:%02X\n",
seek_result_data->addr.addr[0], seek_result_data->addr.addr[1],
seek_result_data->addr.addr[2], seek_result_data->addr.addr[3],
seek_result_data->addr.addr[4], seek_result_data->addr.addr[5]);
// 打印广播数据长度
osal_printk("Adv Data Len: %d\n", seek_result_data->data_length);
// 打印广播数据
for (int i = 0; i < seek_result_data->data_length; i++) {
osal_printk("%02X ", seek_result_data->data[i]);
}
osal_printk("\n");
// 原本的代码,需要注释掉
// uint8_t mac[SLE_ADDR_LEN] = {0x11, 0x22, 0x33, 0x44, 0x55, 0x66};
// if (memcmp(seek_result_data->addr.addr, mac, SLE_ADDR_LEN) == 0) {
// (void)memcpy_s(&g_remote_addr, sizeof(sle_addr_t), &seek_result_data->addr, sizeof(sle_addr_t));
// sle_stop_seek();
// }
}
}
烧写程序:
1、修改系统配置,如广播端:

2、编译,超级慢,单细胞都等成类人猿了
3、设置下载端口:

按下开发板的复位按钮烧录

4、打开串口监视器,检查是否正确的输出了你发送的数据:

华为星闪广播通信开发实践
1250

被折叠的 条评论
为什么被折叠?



