小熊派鸿蒙社区
直播中

Cool

12年用户 1030经验值
擅长:嵌入式技术 处理器/DSP 控制/MCU RF/无线
私信 关注

【BearPi-Pico H3863星闪开发板体验连载】玩转星闪,可视化呈现

收到BearPi-Pico H3863星闪开发板,首先感谢电子发烧友与小熊派提供的平台与开发板。开发板有两块,可以用来做星闪方面的功能与性能评估。这里搭配一块ssd1306 oled,做这款开发板的BLE、SLE、WIFI方面的功能、性能开发与评估。

一.开发环境搭建与点灯
1.了解开发板
这款开发板主控使用海思SOC WS63(又称Hi3863),RISC-V 高性能 32bit CPU,片内资源606KB SRAM,300KB ROM,4MB Flash 可谓很丰富,集成了2.4GHz WiFI6、BLE、SLE,且外设接口有I2C、PWM、GPIO、ADC、SPI/QSPI、UART、I2S等,资源非常丰富。
开发板实物如下:
1_开发板正面.jpg

2.开发环境搭建
开发环境支持Windows和Ubuntu下搭建,这里选择Windows下搭建,下载资源包
(1)安装环境安装包。主要是安装HiSpark Studio依赖的python环境。
(2)安装HiSpark Studio IDE
(3)拉取SDK到本地。
git clone https://gitee.com/bearpi/bearpi-pico_h3863.git
(4)打开 HiSpark Studio IDE,创建工程,配置如下
2_创建工程配置.jpg

创建成功后如下
3_创建工程.jpg

3.点灯工程准备
(1)选择案例。这里选择blinky,这里将配置参数宏改为1000ms间隔。
4_选择案例.jpg

(2)闪灯代码。这里添加了些日志,代码如下。准备好后点击全编译。
5_闪灯代码.jpg

(3)编译与烧录
烧录分为在线烧录和离线烧录。在线烧录在IDE配置如下,编译完成后IDE里按钮下载,复位下开发板,这里就开始烧录进开发板。
6_在线下载配置.jpg

离线烧录使用BurnTool_H3863,配置如下。在点connect后复位下开发板,程序进行烧录。
7_离线烧录配置.jpg

固件烧录完成后,复位开发板,日志如下,可以看到蓝色LED指示灯1s间隔闪烁。日志如下
8_串口日志.jpg

至此,实现开发环境搭建与例程程序烧录,整个开发流程跑通,开发板按预期正常运行。

LED_Blinky

回帖(5)

Cool

2024-10-1 07:29:59

二.创建自建工程,点亮OLED

本篇讲述创建自己的工程,并点亮ssd1306驱动的oled显示。

1.创建工程

创建自己的工程主要是脚本文件的组织编写添加,这里已经过编译测试的工程目录文件如下图,后面展开说明
1_自建工程的目录.jpg


(1)在application\\samples\\CMakeLists.txt修改添加如下:
2_CmakeList_1.jpg


(2)在application\\samples\\Kconfig修改如下
3_Kconfig_1.jpg


(3)在samples目录下创建user_app目录文件夹,并创建application\\samples\\user_app\\CMakeLists.txt和application\\samples\\user_app\\Kconfig脚本文件,内容如下图所示.
4_user_app脚本.jpg


(4)在user_app文件目录下创建project目录。这里移植了application\\samples\\peripheral\\i2c\\下工程文件,代码放在另一部分说明。这里重点脚本文件需要注意匹配,有application\\samples\\user_app\\project\\CMakeLists.txt,application\\samples\\user_app\\project\\Kconfig,application\\samples\\user_app\\project\\app_main.code-workspace这三个脚本文件,具体修改见下图
5_project脚本.jpg


(5)这时,在HiSpark Studio IDE里点“系统配置”按钮,在Application下可以看到自建的工程编译项
6_新工程链接.jpg

这里使能需要用到如下,其包含I2C配置。
7_自建工程配置使能.jpg


至此,自建工程脚本框架基本构建完成,后续工程扩展进行相应添加修改即可。


2.点亮OLED

(1)这里使用到SSD1306驱动oled,像素128*64。硬件连接开发板如下:

开发板                 oled模块

3.3V                      VCC

GND                     GND

TXD(GPIO16)     SDA

RXD(GPIO15)     SCL


(2)上面项第(4)小节也讲到移植官方例程源代码。这里将源文件布局进行调整,外设驱动及功能部分代码放在app_peripheral.c源文件.代码修改如下,将显示部分增加了一行。关于源文件路径上面脚本里已经有所体现,在自建工程时留意检查是否有遗漏等。
8_工程代码修改.jpg

(3)编译烧录,可以看到oled按设计显示相应字符串。至此实现了自建工程与点亮oled显示功能。


9_oled驱动显示.jpg


举报

打马过草原

2024-10-11 10:15:12
感谢大佬分享,期待后续精彩报告
举报

Cool

2024-10-25 00:32:47

三.BLE串口透传

本篇讲述H3863星闪开发板所具备的蓝牙功能,蓝牙串口服务端、客户端连接,通过串口工具发送数据,BLE server和client之间进行无线数据收发

1.代码准备

(1)编译烧录ble_uart_client工程,配置及涉及到工程源文件如下:
1_ble_uart_client.jpg


(2)编译烧录ble_uart_server工程,配置及涉及到工程源文件如下:
2_ble_uart_server.jpg


2.代码解读

●ble_uart.c通过宏创建ble_uart_client_task/ble_uart_server_task任务,在任务均注册串口接收回调,任务里消息队列接收,由串口发送的数据,消息队列里收到的数据通过蓝牙发送。

●在ble_uart_client文件路径下,可以看到ble_uart_client.c蓝牙串口客户端配置及ble_uart_client_scan.c蓝牙客户端扫描设置

●在ble_uart_server文件路径下,可以看到ble_uart_server_adv.c蓝牙串口服务端创建服务UUID,uart收发特性及蓝牙服务事件回调、配对等;ble_uart_server_adv.c蓝牙服务端广播配置,启动等


3.测验

(1)单独上电ble_uart_server端,可以看到服务端蓝牙广播与上电日志如下
3_蓝牙服务端日志及蓝牙广播.jpg


(2)单独上电ble_uart_client端,可以看到客户端蓝牙上电启动扫描日志如下
4_客户端蓝牙扫描日志.jpg


(3)先上电ble_uart_server端,再上电ble_uart_client端,可以看到二者建立连接如下
5_建立连接.jpg


(4)在客户端/服务端串口发送字符,另一端均可接收到,并串口打印出来,日志如下
6_收发通讯.jpg


至此,实现蓝牙串口客户端与服务端通讯功能。


举报

Cool

2024-10-26 01:06:50

四.SLE串口透传

上一篇讲了H3863星闪开发板可以作为蓝牙开发板使用,本篇则讲述H3863方案特别具有的星闪通讯功能,这也是华为另辟蹊径开发的近场无线通讯技术。官方宣传星闪SLE较蓝牙具备通讯速率快,通讯距离远,时延小,功耗低等特点。这里以官方例程sle_uart作为切入点。

1.代码准备与解读

(1)配置与选择

这里代码配置烧录分为SLE服务端、客户端,与上篇代码结构基本相像,配置上选择Application->Enable Sample->Enable the Sample of products->Support SLE UART sample->Select sle uart type ,这里可选 Enable SLE UART Service sample/Enable SLE UART Client sample,对应SLE串口服务端/客户端。


(2)SLE通讯射频有别与BLE,常用的蓝牙查看工具如nRF Connect对SLE不可视了,目前咱没看到关于SLE调试查看的APP工具,如果与手机射频不兼容估计这APP工具也做不了。这里就主要看代码了解SLE,通过代码及日志了解SLE通讯情况

●sle_uart.c通过宏CONFIG_SAMPLE_SUPPORT_SLE_UART_SERVER/CONFIG_SAMPLE_SUPPORT_SLE_UART_CLIENT编译区分SLE服务端/客户端,以sle_uart_entry为入口,在任务里初始创建消息队列、串口初始化及注册回调、SLE服务端/客户端初始化。在sle_uart_server_task服务端任务主体接收串口,代码里一些API函数完全封装也没有.h文件里给参数功能描述下(如sle_start_announce等),显得比较生硬、封闭了。再就是回调比较多,底层是封装的比较严密,这部分往下查可以看到些注释说明,花些时间精力了解注册流程及回调功能,通过代码与调试测验,以便疏通了解sle的使用。

●sle_uart_server_adv.c/application\\samples\\products\\sle_uart\\sle_uart_server\\sle_uart_server.c定义了服务端广播与建立服务功能的函数,功能架构上与蓝牙的差不太多。

●sle_uart_client.c包含了客户端sle 扫描功能及建立连接通讯等功能。


2.测验

(1)SLE uart Service与SLE uart Client各自上电初始化日志.
1_sle初始化日志.jpg


(2)SLE uart Service与SLE uart Client先后上电,可看到连接,日志如下
2_sle建立连接日志.jpg


(3)通过串口在SLE uart Service与SLE uart Client端发送数据,可通过SLE通讯到另一端并串口打印出,日志如下
3_相互通讯.jpg


通过试验,可以了解到SLE的通讯功能。


举报

更多回帖

发帖
×
20
完善资料,
赚取积分