蜂鸟B-BLE: ReleaseNote

蜂鸟B-BLE v1.0.4
ReleaseNote

版本历史记录

版本：V1.0.4，发布时间：2022/4/19

适配环境：

  • 硬件：蜂鸟B US665P31 V1_0 开发板
  • 软件：hb_B_ble v1.0.3

修改记录：

  1. 更新uart、timer和pwm3相关API信息

版本：V1.0.3，发布时间：2022/4/12

适配环境：

  • 硬件：蜂鸟B US665P31 V1_0 开发板
  • 软件：hb_B_ble v1.0.2

修改记录：

  1. 在第七章中补充经典蓝牙功能信息

版本：V1.0.2，发布时间：2022/4/6

适配环境：

  • 硬件：蜂鸟B US665P31 V1_0 开发板
  • 软件：hb_B_ble v1.0.1

修改记录：

  1. 更新API信息

版本：V1.0.1，发布时间：2022/3/16

适配环境：

  • 硬件：蜂鸟B US665P31 V1_0 开发板
  • 软件：hb_B_ble v1.0.0

修改记录：

  1. 更新小程序名称

版本：V1.0.0，发布时间：2022/2/17

适配环境：

  • 硬件：蜂鸟B US665P31 V1_0 开发板
  • 软件：hb_B_ble v1.0.0

修改记录：

  1. 第一版发布


蜂鸟B-BLE: 1、简介

1、简介

1. 引言

云知声总部位于北京，在上海、深圳、厦门设有全资子公司。是一家专注物联网人工智能服务、拥有完全自主知识产权的世界顶尖的智能语音识别和语义理解技术的高新技术企业。自2012年由智能语音技术起家，云知声多年来不断拓展技术边界，技术能力不仅涵盖了感知、认知、交互等方面的人工智能语音语义技术，更是在突破了 AI 芯片设计技术后，一举打造出了自主研发、自主知识产权、自主可控的全栈式人工智能技术链条（深度学习算法+大数据+超级计算+芯片能力）。

以强大的计算平台为基础，云知声构建了“云端芯”生态体系，提供跨硬件平台、跨应用场景的软硬件一体化云端+本地智能的芯片终端解决方案。目前云知声是迄今为止行业内唯一实现芯片落地应用的公司、国内白色家电领域领先AI芯片供应商、国内首家推出医疗云服务并完成数百家医院系统测试的语音服务商、我国后装车机市场占有量行业第一、教育云社会化口语评测服务市场占有量第一。还在智慧生活（家居、车载、机器人等）和智慧服务（医疗、教育、司法等）等多个垂直场景均有落地应用。

2. 产品简介

云知声提供标准化软硬件一体离线语音解决方案，支持单麦拾音、前端降噪、语音唤醒、离线识别等。用户使用方案中的标准化硬件模组配合云知声设备平台与相关工具，快速定制语音产品，为空调、冰箱、灯具、开关等家居设备赋能，无需联网即可使其具备智能语音交互能力。

- 硬件：基于云知声蜂鸟B芯片为核心的标准硬件板，集成离线识别算法

- 开放平台：可进行语音相关配置并生成软件版本的云知声智能设备平台

- 软件与源码：可直接使用，也可修改代码进行二次编译的软件版本

- 文档与工具：使用指南与技术开发文档，配套测试工具


蜂鸟B-BLE: 2、产品说明

2、产品说明

1. 硬件说明

蜂鸟B芯片是集成蓝牙功能的系统级SOC，支持高性能低功耗的蓝牙及音频应用。芯片内置蓝牙调制解调器、基带及模拟RF模块，支持蓝牙V2.1/V4.2/V5.1版本及低功耗蓝牙连接待机，通信距离长，待机时间久。芯片集成高性能音频AD/DA，内置240Mhz高性能浮点DSP，嵌入低延时cache，方便开发。依托于云知声在语音识别技术上的积累和算法的不断优化和创新，将本地识别算法与芯片架构深度融合，为客户提供Turnkey语音识别方案。

蜂鸟B芯片通用开发板

1642694482(1)

蜂鸟B芯片通用开发板

蜂鸟B芯片主要特性：

配置 | 规格
蜂鸟B芯片 | 高速SRAM 192KB
 | FLASH 1MB
mic数量 | 1
UART通信接口 | 2
音频接口 | I2S
控制接口 | UART, GPIO, I2C, SPI, PWM 等
BT | BLE

2. 软件功能

序号 | 功能 | 功能描述
1 | 单麦拾音 | · 单麦克风方案 · 支持家居场景3~5m远讲
2 | 语音唤醒 | · 高性能唤醒引擎 · 支持带口音的普通话 · 低误唤醒率 (< 1 false in 24 hours)
3 | 离线识别 | · 支持本地50条控制指令识别
4 | 多轮对话 | · 一次唤醒连续对话，语音操作更加便捷自然。
5 | 多种发音人音色 | · 提供标准女声、甜美女声、可爱女声、台湾女声、标准男声、女童声、男童声七种音色可选
6 | UART主板对接 | · 支持对接用户自有协议
7 | 智能设备平台 | · 云知声设备平台提供：唤醒词自定义，命令词自定义，回复播报语自定义，个性化声学模型，发音人音色选择等产品自定义配置


蜂鸟B-BLE: 3、获取源码

3、获取源码

1. 前期准备

1.1 账号创建

• 进入云知声开放平台：http://udp.hivoice.cn/

• 点击右上角的 登陆/注册，弹出如下窗口：

• 如无账号，请点击 去注册；

• 注册方式有“手机账号注册”、“邮箱账号注册”两种方式

• 如已有云知声开发账号请忽略本步骤；

• 选择邮箱账号注册需点击激活邮件后才能正常登陆

1.2 完善资料

注册成功后，为确保账号可用，请登陆云知声账号；

登陆后，点击右上角的 完善资料，输入相关必填信息。

1.3 开通权限

1. 联系云知声商务，申请开通云知声智能设备平台权限，获取离线标准开发板；

2. 开通权限后，产品控制台入口可见，在控制台-产品接入下。

2. 配置并生成产品版本

2.1 创建产品

（1）用户登陆云知声开放平台（http://udp.hivoice.cn/），点击导航栏中的 控制台，点击 产品接入 进入产品接入控制台。

（2）进入产品控制台后，点击 创建产品。

（3）云知声智能设备平台提供不同场景，用以定制不同语音产品形态，此处选择智能家居中文版（纯离线）。

（4）选择系统与芯片平台，选择 蜂鸟B-BLE芯片，并在下方选择具体的设备类型。通过点击芯片名旁边的按钮，可以获取蜂鸟B-BLE芯片产品手册。

（5）填写产品信息，包括名称与描述

（6）确认所选项无问题，点击 保存且下一步，即初步创建产品成功

2.2 产品版本开发

2.2.1 创建产品版本

（1）创建产品版本，填写版本号及版本信息，点击下一步。

• 产品创建成功后，系统会自动为该产品分配Appkey与AppSecret，此为该产品唯一识别ID和密匙。

• 一个产品可维护多个版本，可通过版本号与版本描述来区分。

2.2.2 配置终端能力

（1） 选择前端信号处理方案

蜂鸟B-BLE芯片通用板支持单麦克风收音，开发者针对不同的使用场景，选择识别距离，实现对声音信号的处理方式，提升识别结果的准确率。

（2）PIN脚配置

蜂鸟B-BLE支持零代码实现芯片引脚配置，通过参数配置自定义GPIO、PWM、UART等端口的输出信号，直接控制外围电路。

（3）自定义产品唤醒词，以及唤醒回复语

• 支持3-6个字的唤醒词自定义配置，最多支持10组唤醒词的添加；

• 为保证语音产品有最佳唤醒体验，平台针对唤醒词的发音提供打分功能，并会提供具体指导信息；

• 涉及黄赌毒、政治敏感、低俗辱骂等不合规内容的唤醒词不可使用；

• 完整唤醒词定义规则可点击界面上《唤醒词自定义规则》；

• 支持按照产品使用场景自定义唤醒灵敏度；

• 自定义设置唤醒回复语，唤醒回复最多支持5条，设置后将随机播报。

（4）配置设备IoT能力

如下图所示，产品默认支持的能力都会展示在表格中；

可针对单条能力进行编辑：

点击“控制详情”切换TAB，将控制行为与引脚输出信号进行对应，实现对控制指令的信号输出的配置。

（5）定制离线语音命令词和应答语

直接在功能点对应的配置框中进行命令词和应答语的修改。

（6）配置蓝牙控制功能开关（禁用的话，小程序将无控制该项功能）

（7）选择语音识别模型

蜂鸟B-BLE芯片方案支持对声学模型进行选择，默认为云知声针对蜂鸟B-BLE芯片定制的经过算法优化的通用声学模型。

如当前系统默认的声学模型性能无法满足用户需求时（注：此处用户需求，指经过语音性能量化测试的明确指标），可以使用云知声模型训练平台，采集特定离线命令词的语音训练数据并进行模型定制。

（6）针对产品定位，选择适合产品形态的发音人

• 活泼可爱的萱萱和KiYo，童真童趣的糖糖和天天，温柔可亲的玲玲，庄重严肃的小雯与小峰，七种音色可供选择；

• 可调节音量、语速与声音亮度；

• 提供在线试听，方便用户进行决策；

（7）其它配置

1) 开机音配置

系统自带默认开机铃声，可在页面点击试听。

如需进行开机欢迎语的自定义，也可以选择自定义内容，产品则会在开机后自动进行播报，欢迎语播报自定义限中文，可输入30个字符；也可选择不使用开机音。

2) 识别状态退出相关配置

语音产品为保证用户体验，唤醒后一段时间内无语音输入产品会主动退出识别状态，如需输入命令词，则需再次唤醒。

此段等待用户输入语音命令的有效时间，即为“唤醒超时退出时间”。

• 为确保产品有较好的用户体验，支持5s – 60s的超时退出时间设置，默认为10秒。

• 超时退出回复最多可设置2条。

当用户想要结束对话时，也可以主动要求退出识别状态。

• 默认退出命令为“退下”“再见”，可根据产品定义修改，最多可设置3条。

• 主动退出回复最多可设置2条。

如配置完成，则可点击下一步，进入版本发布页面。

2.2.3 下载版本

（1）产品配置开发完成，进入发布页面后，可点击 立即发布。

（2）产品发布需要一定时间，可以有两种方法获取到发布成功的产品：

• 发布界面下，版本发布成功后，会有下载提示；

• 也可以直接返回产品详情，或关闭页面一段时间再进入智能设备平台的产品详情，页面中的版本列表处点击下载。

2.3 产品版本维护

产品详情页面可以查看已创建的产品，可以查看每个版本的配置信息，也可以对已发布成功的版本进行下载操作。

2.3.1 新版本迭代

同一个产品如有新需求的修改或迭代，可在产品详情页面点击产品方案的“编辑” +开发新版本，后续的操作步骤同创建产品版本时的流程一致。

提供选择任一历史版本进行迭代开发的选项，默认为基于最新修改的版本，也可根据需求进行其它版本的选择。


蜂鸟B-BLE: 4、烧录固件

4、烧录固件

1. 文件介绍

• 产品的软件烧录包下载成功后，解压文件，可以看到如下方文件目录

• 如想直接使用，体验语音功能，请打开“image_demo/Hummingbird-B-Production-Tool”文件夹，双击“UnisoundDownloader”，运行烧录工具

• 烧录工具配置界面如下图所示：

2. 烧录指南

1) 准备

a. 下载工具：UnisoundDownloader

b. 待烧录固件：uni_app.fw（一般在固件包bin目录下）

c. 蜂鸟B开发板

d. 蜂鸟B调试器

2) 接线

3) 烧录

a. 打开下载工具UnisoundDownloader，点击【打开】按钮选择待烧录的固件：

b. 将开发板通过调试器和PC连接后，点按一下调试器上的按钮，此时下载工具会自动识别到设备并显示设备信息：

c. 点击升级按钮，等待烧录进度条完成

d. 进度条显示“升级成功”，即可重启启动固件（若勾选【成功后复位】，设备会自动重启）


蜂鸟B-BLE: 5、搭建开发环境

5、搭建开发环境

1 环境准备

(1) 下载编译工具

推荐使用Ubuntu 16.04 / centos7以上版本作为开发环境。

交叉编译工具下载地址：

链接：https://pan.baidu.com/s/1Ityp9tYWW3eCzW8TuuIM-g

提取码：vzgh

下载交叉编译工具并解压到开发环境“/opt/toolchains”路径中，建议保持如下目录结构：

若交叉编译工具路径配置在其他路径，也可在工程根目录下Makefile中及cpu/br23/tools/download.sh脚本中更新为对应的路径：

(2) 已下载的版本里除了可直接烧录使用的image_demo外，文件夹内包含产品方案源码（请于上述开发环境中解压方案压缩包，以免丢失链接文件），如下图所示：

(3) 安装python环境：sudo apt-get install python

(4) 安装lame音频处理工具：sudo apt-get install lame

(5) 安装32位兼容库（如果系统未安装过）：sudo apt-get install lib32stdc++6 lib32z1 lib32ncurses5 lib32bz2-1.0（仅适用于Ubuntu 16.04版本，其他版本请根据系统说明解决兼容性问题)

2 编译

(1) 执行编译

进入根目录，执行./build.sh即可：

编译成功会看到如下信息：

(2) output目录下可以看到编译生成的完整固件，使用章节3中的下载工具即可进行烧录使用：


蜂鸟B-BLE: 6、软件架构

6、软件架构

1.源码目录结构

源码各个目录功能如下所示：

二次开发关注目录：

可在根目录执行./build.sh res指令进行资源文件的重生成，一般在手动替换本地音频文件时进行操作，后续无需重复执行，直接./build.sh即可生成固件。（./build.sh res 会重新生成uni_auto_control.c及unires下的文件，更新前请注意备份）


蜂鸟B-BLE: 7、二次开发

7、二次开发

1. 运行一个Demo

平台下载源码的根目录下执行./build.sh即可生成可使用的demo固件，烧录入开发板后即可体验完整功能。

2. 串口调试

调试串口默认使用uart1，连接PC后使用常见串口工具（如putty、xshell、secureCRT等），配置波特率 (115200bps)、数据位 (8)、停止位 (1)、校验 (None)即可。

TX连接串口调试器RX，RX连接串口调试器TX，GND连接GND接口，设备上电后，可在串口工具中观察到如下启动信息：

3. 调整指令阈值

蜂鸟B芯片支持离线语音识别阈值的配置，一般情况使用平台自动计算获得的值即可，也可以根据项目的要求进行微调。（unisound/unires/include/uni_cust_config.h）

4. 经典蓝牙功能开关

通过修改apps/soundbox/board/br23/board_us665p3_demo/board_us665p3_demo_cfg.h中经典蓝牙相关的宏可以打开或者关闭经典蓝牙功能，例如通过下面的修改可以打开经典蓝牙，并使能音频推送：

#define TCFG_USER_BT_CLASSIC_ENABLE 1

#define USER_SUPPORT_PROFILE_A2DP 1

经典蓝牙功能的开关与BLE的开关并无关联，因此上面的修改并不影响BLE。同理，如下修改可以关闭BLE而不影响经典蓝牙功能：

#define TCFG_USER_BLE_ENABLE 0


蜂鸟B-BLE: 8、IoT方案开发

8、IoT方案开发

本章主要介绍基于蜂鸟B_BLE芯片的IoT方案开发调试流程。

1. 准备设备端固件

1) 参照第三章的步骤创建基于蜂鸟B_BLE芯片的IoT产品并构建固件。

2) 烧录固件至开发板中并上电启动。

2. 微信小程序端调试

1) 在微信中搜索【智慧AI物联】小程序，授权后进入首页。

2) 按照提示开启手机蓝牙功能后，点击【添加设备】或者右上角【+】按钮，搜索附近蓝牙设备。

3) 之前使用过的用户，首页会展示过往设备连接记录。白色背景表示该设备在手机蓝牙搜索范围内，可直接点击连接。所有设备记录支持长按删除功能。

4) 进入设备连接页面，展示手机蓝牙附近搜索的设备列表，点击目标设备（默认名称为“uniIot(BLE)”）进行连接，若连接成功，三秒倒计时自动跳转或点击【完成】按钮直接跳转到设备控制页面。

若连接失败，点击【重新连接】按钮重新连接。

5) 进入设备控制页面，可通过点击按钮或者语音控制设备，并观察设备端响应（回复语、gpio功能、log等）判断是否正常执行。

6) 【我的】页面，点击【建议反馈】提交反馈，点击【退出登陆】，返回到登陆页面。


蜂鸟B-BLE: 模块

模块
这里列出了所有模块:
[详情级别 12]
▼ 音频控制
音频控制说明
音频控制接口
▼ GPIO
GPIO说明
GPIO相关接口
GPIO相关类型定义
▼ UART
UART说明
UART相关接口
▼ PWM
PWM说明
PWM相关接口
▼ TIMER
TIMER说明
TIMER相关接口
▼ FLASH
FLASH说明
FLASH相关接口
▼ BLE
BLE说明
BLE相关接口
▼ IoT协议
IoT协议说明
IoT相关接口
IoT相关类型定义


蜂鸟B-BLE: 音频控制

模块
音频控制

模块

音频控制说明
音频控制接口

详细描述


蜂鸟B-BLE: 音频控制说明

音频控制说明
音频控制
音频播放相关接口说明：
  1. 可播放 apps/soundbox/smartbox/unisound/unires/scripts 路径下的音频，文件名以序号区分；
  2. 调用播放接口是异步不堵塞的；


蜂鸟B-BLE: 音频控制接口

函数
音频控制接口
音频控制

函数

int | user_player_play (const char *file)
播放文件 更多...
int | user_player_reply_list_num (const char *file_list, int num)
播放列表序号音频 更多...
int | user_player_reply_list_random (const char *file_list)
随机播放列表音频 更多...
int | user_player_reply_list_in_order (const char *file_list)
顺序播放列表中所有音频 更多...
int | user_player_stop (void)
停止播放 更多...
int | user_player_set_volume_min (void)
设置最小音量
int | user_player_set_volume_max (void)
设置最大音量
int | user_player_set_volume_mid (void)
设置中等音量
int | user_player_set_volume_up (void)
增加音量
int | user_player_set_volume_down (void)
减小音量
int | user_player_speaker_mute (void)
设置喇叭静音
int | user_player_speaker_unmute (void)
取消设置喇叭静音
int | user_player_init (void)
初始化

详细描述

函数说明

◆ user_player_play()

int user_player_play ( const char * file )
参数
file 播放文件名
返回值
0 | 操作成功
-1 | 操作失败

◆ user_player_reply_list_in_order()

int user_player_reply_list_in_order ( const char * file_list )
参数
file_list 文件列表 [1, 2, 3]
返回值
0 | 操作成功
-1 | 操作失败

◆ user_player_reply_list_num()

int user_player_reply_list_num | ( | const char * | file_list,
 |  | int | num
 | ) |  |
参数
file_list | 文件列表 [1, 2, 3]
num | 列表序号
返回值
0 | 操作成功
-1 | 操作失败

◆ user_player_reply_list_random()

int user_player_reply_list_random ( const char * file_list )
参数
file_list 文件列表 [1, 2, 3]
返回值
0 | 操作成功
-1 | 操作失败

◆ user_player_stop()

int user_player_stop ( void )
返回值
0 | 操作成功
-1 | 操作失败


蜂鸟B-BLE: GPIO

模块
GPIO

模块

GPIO说明
GPIO相关接口
GPIO相关类型定义

详细描述


蜂鸟B-BLE: GPIO说明

GPIO说明
GPIO
GPIO说明
  • GPIO配置时请确保不会引入引脚冲突等问题。


蜂鸟B-BLE: GPIO相关接口

函数
GPIO相关接口
GPIO

函数

void | user_pin_set_func (UNI_PIN_NUM_E user_pin, UNI_PIN_FUNC_E user_func)
GPIO端口功能配置 更多...
int | user_gpio_set_direction (UNI_PIN_NUM_E user_pin, UNI_GPIO_DIRECTION_E direction)
GPIO端口方向配置 更多...
int | user_gpio_get_level (UNI_PIN_NUM_E pin)
GPIO电平获取 更多...
int | user_gpio_set_level (UNI_PIN_NUM_E user_pin, UNI_GPIO_LEVEL_E level)
GPIO电平配置 更多...
int | user_sw_timer_gpio_pulse (UNI_PIN_NUM_E user_pin, int period_ms, int times, uint8_t dev_val)
GPIO端口定时输出脉冲设置 更多...

详细描述

函数说明

◆ user_gpio_get_level()

int user_gpio_get_level ( UNI_PIN_NUM_E pin )
参数
user_pin 端口号
返回值
电平值 0或1

◆ user_gpio_set_direction()

int user_gpio_set_direction | ( | UNI_PIN_NUM_E | user_pin,
 |  | UNI_GPIO_DIRECTION_E | direction
 | ) |  |
参数
user_pin | 端口号
direction | 方向
返回值
0 | 操作成功
-1 | 操作失败

◆ user_gpio_set_level()

int user_gpio_set_level | ( | UNI_PIN_NUM_E | user_pin,
 |  | UNI_GPIO_LEVEL_E | level
 | ) |  |
参数
user_pin | 端口号
level | 电平，0或1
返回值
0 | 操作成功
-1 | 操作失败

◆ user_pin_set_func()

void user_pin_set_func | ( | UNI_PIN_NUM_E | user_pin,
 |  | UNI_PIN_FUNC_E | user_func
 | ) |  |
参数
user_pin | 端口号
user_func | 端口功能

◆ user_sw_timer_gpio_pulse()

int user_sw_timer_gpio_pulse | ( | UNI_PIN_NUM_E | user_pin,
 |  | int | period_ms,
 |  | int | times,
 |  | uint8_t | dev_val
 | ) |  |
参数
user_pin | 端口号
period_ms | 脉冲周期
times | 脉冲次数
dev_val | 脉冲结束持续电平，0或1
返回值
0 | 操作成功
1 | 操作失败


蜂鸟B-BLE: GPIO相关类型定义

枚举
GPIO相关类型定义
GPIO

枚举

enum | UNI_GPIO_LEVEL_E { UNI_GPIO_LEVEL_LOW = 0, UNI_GPIO_LEVEL_HIGH }
gpio 电平状态 更多...
enum | UNI_GPIO_DIRECTION_E { UNI_GPIO_DIRECTION_OUTPUT = 0, UNI_GPIO_DIRECTION_INPUT }
gpio 方向 更多...
enum UNI_PIN_NUM_E {
UNI_PIN_NUM_1 = IO_PORT_DM, UNI_PIN_NUM_2 = IO_PORT_DP, UNI_PIN_NUM_3 = IO_PORTA_01, UNI_PIN_NUM_4 = IO_PORTA_00,
UNI_PIN_NUM_13 = IO_PORTB_11, UNI_PIN_NUM_14 = IO_PORTB_10, UNI_PIN_NUM_15 = IO_PORTB_09, UNI_PIN_NUM_16 = IO_PORTB_08,
UNI_PIN_NUM_17 = IO_PORTB_05, UNI_PIN_NUM_20 = IO_PORTB_01
}
gpio 引脚号
enum | UNI_PIN_FUNC_E { UNI_FUNC_GPIO, UNI_FUNC_UART_TX, UNI_FUNC_UART_RX, UNI_FUNC_PWM }
gpio 功能

详细描述

枚举类型说明

◆ UNI_GPIO_DIRECTION_E

enum UNI_GPIO_DIRECTION_E
枚举值
UNI_GPIO_DIRECTION_OUTPUT | GPIO端口作为输出
UNI_GPIO_DIRECTION_INPUT | GPIO端口作为输入

◆ UNI_GPIO_LEVEL_E

enum UNI_GPIO_LEVEL_E
枚举值
UNI_GPIO_LEVEL_LOW | 低电平
UNI_GPIO_LEVEL_HIGH | 高电平


蜂鸟B-BLE: UART

模块
UART

模块

UART说明
UART相关接口

详细描述


蜂鸟B-BLE: UART说明

UART说明
UART
UART说明
  1. 蜂鸟B可用的UART为UART1和UART2；
  2. UART端口的数据位为8比特，停止位为1比特，无校验位和流控；


蜂鸟B-BLE: UART相关接口

函数
UART相关接口
UART

函数

int | user_uart_init (UNI_PIN_NUM_E tx_pin, UNI_PIN_NUM_E rx_pin, uint32_t baudrate, int data_bits, int stop_bits, int parity)
UART初始化 更多...
int | user_uart_send (int port, uint8_t *data, uint32_t size)
UART数据发送 更多...
uint32_t | user_uart_recv (int port, uint8_t *data, uint32_t size, uint32_t timeout)
UART数据接收 更多...
int | user_uart_recv_byte (int port, uint8_t *data, uint32_t timeout)
UART数据单字节接收 更多...

详细描述

函数说明

◆ user_uart_init()

int user_uart_init | ( | UNI_PIN_NUM_E | tx_pin,
 |  | UNI_PIN_NUM_E | rx_pin,
 |  | uint32_t | baudrate,
 |  | int | data_bits,
 |  | int | stop_bits,
 |  | int | parity
 | ) |  |
参数
tx_pin | GPIO发送端口号
rx_pin | GPIO接收端口号
baudrate | 波特率
data_bits | 数据位（暂未使用）
stop_bits | 停止位（暂未使用）
parity | 校验位（暂未使用）
返回值
0 | 操作成功
-1 | 操作失败

◆ user_uart_recv()

uint32_t user_uart_recv | ( | int | port,
 |  | uint8_t * | data,
 |  | uint32_t | size,
 |  | uint32_t | timeout
 | ) |  |
参数
port | UART端口号
data | 接收数据的缓冲区起始地址
size | 接收数据的长度
timeout | 超时时间，单位为ms。
返回值
实际接收数据长度

◆ user_uart_recv_byte()

int user_uart_recv_byte | ( | int | port,
 |  | uint8_t * | data,
 |  | uint32_t | timeout
 | ) |  |
参数
port | UART端口号
data | 接收数据的缓冲区起始地址
timeout | 超时时间，单位为ms。
返回值
0 | 操作成功
-1 | 操作失败

◆ user_uart_send()

int user_uart_send | ( | int | port,
 |  | uint8_t * | data,
 |  | uint32_t | size
 | ) |  |
参数
port | UART端口号
data | 待发送数据起始地址
size | 待发送数据长度
返回值
0 | 操作成功
-1 | 操作失败


蜂鸟B-BLE: PWM

模块
PWM

模块

PWM说明
PWM相关接口

详细描述


蜂鸟B-BLE: PWM说明

PWM说明
PWM
PWM说明
  1. 蜂鸟B可用的PWM包括两路双通道PWM和一路由timer3驱动的单通道PWM3；
  2. 为保证占空比精确度，频率值建议小于40KHz；


蜂鸟B-BLE: PWM相关接口

函数
PWM相关接口
PWM

函数

int | user_pwm_init (UNI_PIN_NUM_E user_pin, uint32_t freq, uint8_t inverse, uint8_t duty)
PWM端口初始化 更多...
int | user_pwm_duty_inc (uint32_t lhchannel, uint8_t det_duty)
PWM通道增加占空比 更多...
int | user_pwm_duty_dec (uint32_t lhchannel, uint8_t det_duty)
PWM通道减小占空比 更多...
int | user_pwm_enable (uint32_t lhchannel, uint8_t duty)
PWM通道使能 更多...
int | user_pwm_disable (uint32_t lhchannel)
PWM通道关闭 更多...
int | user_pwm3_start (u32 freq, u32 duty)
PWM3端口启动 更多...
void | user_pwm3_set_duty (u32 duty)
PWM3通道占空比设置 更多...
void | user_pwm3_stop (void)
PWM3通道停止

详细描述

函数说明

◆ user_pwm3_set_duty()

void user_pwm3_set_duty ( u32 duty )
参数
duty 占空比,0~10000对应占空比0~100%

◆ user_pwm3_start()

int user_pwm3_start | ( | u32 | freq,
 |  | u32 | duty
 | ) |  |
参数
freq | PWM波形频率
duty | 占空比,0~10000对应占空比0~100%
返回值
0 | 操作成功
-1 | 操作失败

◆ user_pwm_disable()

int user_pwm_disable ( uint32_t lhchannel )
参数
lhchannel PWM通道号
返回值
0 | 操作成功
-1 | 操作失败

◆ user_pwm_duty_dec()

int user_pwm_duty_dec | ( | uint32_t | lhchannel,
 |  | uint8_t | det_duty
 | ) |  |
参数
lhchannel | PWM通道号
det_duty | 占空比减小值
返回值
0 | 操作成功
-1 | 操作失败

◆ user_pwm_duty_inc()

int user_pwm_duty_inc | ( | uint32_t | lhchannel,
 |  | uint8_t | det_duty
 | ) |  |
参数
lhchannel | PWM通道号
det_duty | 占空比增加值
返回值
0 | 操作成功
-1 | 操作失败

◆ user_pwm_enable()

int user_pwm_enable | ( | uint32_t | lhchannel,
 |  | uint8_t | duty
 | ) |  |
参数
lhchannel | PWM通道号
duty | 占空比
返回值
0 | 操作成功
-1 | 操作失败

◆ user_pwm_init()

int user_pwm_init | ( | UNI_PIN_NUM_E | user_pin,
 |  | uint32_t | freq,
 |  | uint8_t | inverse,
 |  | uint8_t | duty
 | ) |  |
参数
user_pin | GPIO端口号
freq | PWM波形频率
inverse | 占空比翻转，0：不翻转，为高电平设置占空比；1：翻转，为低电平设置占空比
duty | 占空比
返回值
0 | 操作成功
-1 | 操作失败


蜂鸟B-BLE: TIMER

模块
TIMER

模块

TIMER说明
TIMER相关接口

详细描述


蜂鸟B-BLE: TIMER说明

TIMER说明
TIMER
TIMER说明
  1. timer接口的实现基于usr_timer_add、usr_timer_del、usr_timeout_add、usr_timeout_del接口，用于满足一般的开发需求。如果该接口无法满足业务需求，建议参考底层的usr系列接口，以及sys系列接口（sys_timer_add、sys_timer_del、sys_timeout_add、sys_timeout_del）。


蜂鸟B-BLE: TIMER相关接口

函数
TIMER相关接口
TIMER

函数

uint16_t | user_timer_create (uint32_t msec, bool single_shot, user_timer_cb cb, void *priv)
创建定时动作 更多...
int | user_timer_delete (uint16_t id, bool single_shot)
删除定时动作 更多...

详细描述

函数说明

◆ user_timer_create()

uint16_t user_timer_create | ( | uint32_t | msec,
 |  | bool | single_shot,
 |  | user_timer_cb | cb,
 |  | void * | priv
 | ) |  |
参数
msec | 定时长度/周期
single_shot | 0：连续模式；1：单次模式，超时之后定时器停止工作
cb | 回调函数，当每次超时发生时被执行
priv | 私有数据,供回调函数使用
返回值
所创建的定时器id

◆ user_timer_delete()

int user_timer_delete | ( | uint16_t | id,
 |  | bool | single_shot
 | ) |  |
参数
id | 定时器id，user_timer_create()的返回值
single_shot | 定时器的工作模式
返回值
0 操作成功


蜂鸟B-BLE: FLASH

模块
FLASH

模块

FLASH说明
FLASH相关接口

详细描述


蜂鸟B-BLE: FLASH说明

FLASH说明
FLASH
FLASH说明
  1. Flash存储总体可用空间大小可以通过查看cpu/br23/tools/isd_config.ini文件中的VM_LEN值获得。


蜂鸟B-BLE: FLASH相关接口

函数
FLASH相关接口
FLASH

函数

int | user_flash_read (u16 id, void *buff, u16 len)
读取Flash数据 更多...
int | user_flash_write (u16 id, void *buff, u16 len)
向Flash写入数据 更多...

详细描述

函数说明

◆ user_flash_read()

int user_flash_read | ( | u16 | id,
 |  | void * | buff,
 |  | u16 | len
 | ) |  |
参数
id | 数据的id，有效范围为[1, 49]
buff | 数据缓冲区起始地址
len | 读取的数据长度
返回值
实际读取的数据长度

◆ user_flash_write()

int user_flash_write | ( | u16 | id,
 |  | void * | buff,
 |  | u16 | len
 | ) |  |
参数
id | 数据的id，有效范围为[1, 49]
buff | 数据起始地址
len | 数据的长度
返回值
实际写入的数据长度


蜂鸟B-BLE: BLE

模块
BLE

模块

BLE说明
BLE相关接口

详细描述


蜂鸟B-BLE: BLE说明

BLE说明
BLE
BLE说明
  1. 蜂鸟B接收BLE数据是通过UUID为0xAE30的服务所提供的UUID为0xAE10的属性；
  2. 蜂鸟B发送BLE数据是通过UUID为0xAE30的服务所提供的UUID为0xAE05的属性；


蜂鸟B-BLE: BLE相关接口

函数
BLE相关接口
BLE

函数

void | iot_ble_trans_data_register_msg_cb (on_iot_ble_msg on_msg)
注册BLE接收数据的回调处理函数 更多...
int | iot_ble_trans_data_send (uint8_t *data, uint16_t size)
BLE数据发送接口 更多...

详细描述

函数说明

◆ iot_ble_trans_data_register_msg_cb()

void iot_ble_trans_data_register_msg_cb ( on_iot_ble_msg on_msg )
参数
on_msg 回调函数指针

◆ iot_ble_trans_data_send()

int iot_ble_trans_data_send | ( | uint8_t * | data,
 |  | uint16_t | size
 | ) |  |
参数
data | 待发送数据起始地址
size | 待发送数据长度
返回值
0 | 发送成功
其他 | 发送失败


蜂鸟B-BLE: IoT协议

模块
IoT协议

模块

IoT协议说明
IoT相关接口
IoT相关类型定义

详细描述


蜂鸟B-BLE: IoT协议说明

IoT协议说明
IoT协议
IoT协议说明
  1. IoT协议在BLE传输时采用Json字符串的形式，为此设置有专门的接口用于Json格式与二进制格式之间的互相转换；
  2. IoT协议定义了如下数种消息类型：消息主动上报（Report）、控制消息及回复（Control/Control-Ack）、属性查询消息及回复（Query/Query-Ack）、全量属性查询消息及回复（QueryAll/QueryAll-Ack）、设备发现消息及回复（Discovery/Discovery-Ack）。


蜂鸟B-BLE: IoT相关接口

函数
IoT相关接口
IoT协议

函数

char * | uni_bt_preproc_pack (IotMsg *msg)
将消息打包为Json格式的字符串 更多...
IotMsg * | uni_bt_preproc_unpack (const char *bt_data)
将Json格式的字符串消息解析为结构体形式 更多...
int | user_iot_init (void)
IoT初始化
int | user_iot_voice_set (IotMsgPropertiesControl *msg)
处理语音控制指令相关的IoT动作，设置相应的属性值并打包发送上报消息 更多...
int | user_iot_reply_device_property_control (IotMsgPropertiesControl *msg)
回复控制消息，获取回复内容并打包发送 更多...
int | user_iot_reply_device_property_query (IotMsgPropertiesQuery *msg)
回复查询消息，获取回复内容并打包发送 更多...
int | user_iot_reply_device_property_query_all (IotMsgPropertiesQueryAll *msg)
回复全量查询消息，获取回复内容并打包发送 更多...
int | user_iot_reply_device_discovery (IotMsgDeviceDiscovery *msg)
回复设备发现消息，获取回复内容并打包发送 更多...

详细描述

函数说明

◆ uni_bt_preproc_pack()

char* uni_bt_preproc_pack ( IotMsg * msg )
参数
msg 待打包的消息
返回值
NULL | 打包失败
其他 | 打包好的字符串

◆ uni_bt_preproc_unpack()

IotMsg* uni_bt_preproc_unpack ( const char * bt_data )
参数
bt_data Json格式的字符串消息
返回值
NULL | 解析失败
其他 | 解析好的消息地址

◆ user_iot_reply_device_discovery()

int user_iot_reply_device_discovery ( IotMsgDeviceDiscovery * msg )
参数
msg 待回复的消息
返回值
0 | 执行成功
-1 | 执行失败

◆ user_iot_reply_device_property_control()

int user_iot_reply_device_property_control ( IotMsgPropertiesControl * msg )
参数
msg 待回复的消息
返回值
0 | 执行成功
-1 | 执行失败

◆ user_iot_reply_device_property_query()

int user_iot_reply_device_property_query ( IotMsgPropertiesQuery * msg )
参数
msg 待回复的消息
返回值
0 | 执行成功
-1 | 执行失败

◆ user_iot_reply_device_property_query_all()

int user_iot_reply_device_property_query_all ( IotMsgPropertiesQueryAll * msg )
参数
msg 待回复的消息
返回值
0 | 执行成功
-1 | 执行失败

◆ user_iot_voice_set()

int user_iot_voice_set ( IotMsgPropertiesControl * msg )
参数
msg 待处理的消息
返回值
0 | 消息处理成功
-1 | 消息处理失败


蜂鸟B-BLE: IoT相关类型定义

结构体 | 枚举
IoT相关类型定义
IoT协议

结构体

struct | IotMsg
IoT消息公共头部部分 更多...
struct | IotMsgPropertiesReport
IoT主动上报消息 更多...
struct | IotMsgPropertiesQuery
IoT查询消息 更多...
struct | IotMsgPropertiesQueryAck
IoT查询消息回复 更多...
struct | IotMsgPropertiesQueryAll
IoT全量查询消息 更多...
struct | IotMsgPropertiesQueryAllAck
IoT全量查询消息回复 更多...
struct | IotMsgPropertiesControl
IoT控制消息 更多...
struct | IotMsgPropertiesControlAck
IoT控制消息回复 更多...
struct | IotMsgDeviceDiscovery
IoT设备发现消息 更多...
struct | IotMsgDeviceDiscoveryAck
IoT设备发现消息回复 更多...

枚举

enum IotMsgType {
MSG_TYPE_PROPERTIES_REPORT, MSG_TYPE_PROPERTIES_QUERY, MSG_TYPE_PROPERTIES_QUERY_ACK, MSG_TYPE_PROPERTIES_QUERY_ALL,
MSG_TYPE_PROPERTIES_QUERY_ALL_ACK, MSG_TYPE_PROPERTIES_CONTROL, MSG_TYPE_PROPERTIES_CONTROL_ACK, MSG_TYPE_DEVICE_DISCOVERY,
MSG_TYPE_DEVICE_DISCOVERY_ACK
}
IoT消息类型 更多...

详细描述

枚举类型说明

◆ IotMsgType

enum IotMsgType
枚举值
MSG_TYPE_PROPERTIES_REPORT | 主动上报消息
MSG_TYPE_PROPERTIES_QUERY | Query消息
MSG_TYPE_PROPERTIES_QUERY_ACK | Query消息回复
MSG_TYPE_PROPERTIES_QUERY_ALL | Query-All消息
MSG_TYPE_PROPERTIES_QUERY_ALL_ACK | Query-All消息回复
MSG_TYPE_PROPERTIES_CONTROL | Control消息
MSG_TYPE_PROPERTIES_CONTROL_ACK | Control消息回复
MSG_TYPE_DEVICE_DISCOVERY | Discovery消息
MSG_TYPE_DEVICE_DISCOVERY_ACK | Discovery消息回复


蜂鸟B-BLE: IotMsg结构体 参考

成员变量
IotMsg结构体 参考
IoT协议 » IoT相关类型定义

IoT消息公共头部部分

#include <bt_preproc.h>

成员变量

IotMsgType msg_type
消息类型
char trace_id [32]
消息trace id


蜂鸟B-BLE: IotMsgPropertiesReport结构体 参考

成员变量
IotMsgPropertiesReport结构体 参考
IoT协议 » IoT相关类型定义

IoT主动上报消息

#include <bt_preproc.h>

成员变量

IotMsgType msg_type
消息类型
char | trace_id [32]
消息trace id
char | property_id [32]
消息属性id
PropertyDataType | property_type
消息属性数据类型
char | property_value [16]
消息属性值


蜂鸟B-BLE: IotMsgPropertiesQuery结构体 参考

成员变量
IotMsgPropertiesQuery结构体 参考
IoT协议 » IoT相关类型定义

IoT查询消息

#include <bt_preproc.h>

成员变量

IotMsgType msg_type
消息类型
char | trace_id [32]
消息trace id
char | property_id [32]
消息属性id


蜂鸟B-BLE: IotMsgPropertiesQueryAck结构体 参考

成员变量
IotMsgPropertiesQueryAck结构体 参考
IoT协议 » IoT相关类型定义

IoT查询消息回复

#include <bt_preproc.h>

成员变量

IotMsgType msg_type
消息类型
char | trace_id [32]
消息trace id
char | property_id [32]
消息属性id
PropertyDataType | property_type
消息属性数据类型
char | property_value [16]
消息属性值


蜂鸟B-BLE: IotMsgPropertiesQueryAll结构体 参考

成员变量
IotMsgPropertiesQueryAll结构体 参考
IoT协议 » IoT相关类型定义

IoT全量查询消息

#include <bt_preproc.h>

成员变量

IotMsgType msg_type
消息类型
char trace_id [32]
消息trace id


蜂鸟B-BLE: IotMsgPropertiesQueryAllAck结构体 参考

成员变量
IotMsgPropertiesQueryAllAck结构体 参考
IoT协议 » IoT相关类型定义

IoT全量查询消息回复

#include <bt_preproc.h>

成员变量

IotMsgType msg_type
消息类型
char trace_id [32]
消息trace id
struct {
char id [32]
属性id
PropertyDataType type
属性数据类型
char value [16]
属性值
} properties [PROPERTY_NUM]
属性信息


蜂鸟B-BLE: IotMsgPropertiesControl结构体 参考

成员变量
IotMsgPropertiesControl结构体 参考
IoT协议 » IoT相关类型定义

IoT控制消息

#include <bt_preproc.h>

成员变量

IotMsgType msg_type
消息类型
char | trace_id [32]
消息trace id
char | property_id [32]
消息属性id
PropertyDataType | property_type
消息属性数据类型
char | property_value [16]
消息属性值


蜂鸟B-BLE: IotMsgPropertiesControlAck结构体 参考

成员变量
IotMsgPropertiesControlAck结构体 参考
IoT协议 » IoT相关类型定义

IoT控制消息回复

#include <bt_preproc.h>

成员变量

IotMsgType msg_type
消息类型
char | trace_id [32]
消息trace id
int | ret_code
控制指令执行结果
char | msg [64]
其他回复数据


蜂鸟B-BLE: IotMsgDeviceDiscovery结构体 参考

成员变量
IotMsgDeviceDiscovery结构体 参考
IoT协议 » IoT相关类型定义

IoT设备发现消息

#include <bt_preproc.h>

成员变量

IotMsgType msg_type
消息类型
char trace_id [32]
消息trace id


蜂鸟B-BLE: IotMsgDeviceDiscoveryAck结构体 参考

成员变量
IotMsgDeviceDiscoveryAck结构体 参考
IoT协议 » IoT相关类型定义

IoT设备发现消息回复

#include <bt_preproc.h>

成员变量

IotMsgType msg_type
消息类型
char | trace_id [32]
消息trace id
char | device_type [32]
设备类型
char | device_id [64]
设备id


蜂鸟B-BLE: 结构体

结构体
这里列出了所有结构体，并附带简要说明:
C IotMsg | IoT消息公共头部部分
C IotMsgDeviceDiscovery | IoT设备发现消息
C IotMsgDeviceDiscoveryAck | IoT设备发现消息回复
C IotMsgPropertiesControl | IoT控制消息
C IotMsgPropertiesControlAck | IoT控制消息回复
C IotMsgPropertiesQuery | IoT查询消息
C IotMsgPropertiesQueryAck | IoT查询消息回复
C IotMsgPropertiesQueryAll | IoT全量查询消息
C IotMsgPropertiesQueryAllAck | IoT全量查询消息回复
C IotMsgPropertiesReport | IoT主动上报消息


蜂鸟B-BLE: D:/temp/unione_lite_app_hb_b/apps/soundbox/smartbox/unisound/ble/bt_preproc.h 源文件

  • temp
  • unione_lite_app_hb_b
  • apps
  • soundbox
  • smartbox
  • unisound
  • ble
bt_preproc.h
1 #ifndef BT_PREPROC_H_
2 #define BT_PREPROC_H_
3
4 #include "device_model.h"
5
6 #define TYPE_PROPERTIES_REPORT_STR "device-properties-report"
7 #define TYPE_PROPERTIES_QUERY_STR "device-properties-query"
8 #define TYPE_PROPERTIES_QUERY_ALL_STR "device-properties-query-all"
9 #define TYPE_PROPERTIES_CONTROL_STR "device-properties-control"
10 #define TYPE_DEVICE_DISCOVERY_STR "device-discovery"
11
15 typedef enum {
16 MSG_TYPE_PROPERTIES_REPORT,
17 MSG_TYPE_PROPERTIES_QUERY,
18 MSG_TYPE_PROPERTIES_QUERY_ACK,
19 MSG_TYPE_PROPERTIES_QUERY_ALL,
20 MSG_TYPE_PROPERTIES_QUERY_ALL_ACK,
21 MSG_TYPE_PROPERTIES_CONTROL,
22 MSG_TYPE_PROPERTIES_CONTROL_ACK,
23 MSG_TYPE_DEVICE_DISCOVERY,
24 MSG_TYPE_DEVICE_DISCOVERY_ACK
25 } IotMsgType;
26
30 typedef struct {
31 IotMsgType msg_type;
32 char trace_id[32];
33 } IotMsg;
34
38 typedef struct {
39 IotMsgType msg_type;
40 char trace_id[32];
41 char property_id[32];
42 PropertyDataType property_type;
43 char property_value[16];
44 } IotMsgPropertiesReport;
45
49 typedef struct {
50 IotMsgType msg_type;
51 char trace_id[32];
52 char property_id[32];
53 } IotMsgPropertiesQuery;
54
58 typedef struct {
59 IotMsgType msg_type;
60 char trace_id[32];
61 char property_id[32];
62 PropertyDataType property_type;
63 char property_value[16];
64 } IotMsgPropertiesQueryAck;
65
69 typedef struct {
70 IotMsgType msg_type;
71 char trace_id[32];
72 } IotMsgPropertiesQueryAll;
73
77 typedef struct {
78 IotMsgType msg_type;
79 char trace_id[32];
80 struct {
81 char id[32];
82 PropertyDataType type;
83 char value[16];
84 } properties[PROPERTY_NUM];
85 } IotMsgPropertiesQueryAllAck;
86
90 typedef struct {
91 IotMsgType msg_type;
92 char trace_id[32];
93 char property_id[32];
94 PropertyDataType property_type;
95 char property_value[16];
96 } IotMsgPropertiesControl;
97
101 typedef struct {
102 IotMsgType msg_type;
103 char trace_id[32];
104 int ret_code;
105 char msg[64];
106 } IotMsgPropertiesControlAck;
107
111 typedef struct {
112 IotMsgType msg_type;
113 char trace_id[32];
114 } IotMsgDeviceDiscovery;
115
119 typedef struct {
120 IotMsgType msg_type;
121 char trace_id[32];
122 char device_type[32];
123 char device_id[64];
124 } IotMsgDeviceDiscoveryAck;
125
134 char* uni_bt_preproc_pack(IotMsg *msg);
135
142 IotMsg* uni_bt_preproc_unpack(const char *bt_data);
144 const char* uni_bt_msg_name(IotMsgType type);
145 void uni_bt_get_trace_id(char *trace_id);
146
147 #endif


蜂鸟B-BLE: 结构体索引

结构体索引
i
i
IotMsgDeviceDiscovery IotMsgPropertiesControlAck IotMsgPropertiesQueryAll
IotMsgDeviceDiscoveryAck IotMsgPropertiesQuery IotMsgPropertiesQueryAllAck
IotMsg IotMsgPropertiesControl IotMsgPropertiesQueryAck IotMsgPropertiesReport
i


蜂鸟B-BLE: D:/temp/unione_lite_app_hb_b/apps/soundbox/smartbox 目录参考

  • temp
  • unione_lite_app_hb_b
  • apps
  • soundbox
  • smartbox
smartbox 目录参考


蜂鸟B-BLE: D:/temp/unione_lite_app_hb_b/apps/soundbox/smartbox/unisound 目录参考

  • temp
  • unione_lite_app_hb_b
  • apps
  • soundbox
  • smartbox
  • unisound
unisound 目录参考

目录


蜂鸟B-BLE: D:/temp/unione_lite_app_hb_b/apps/soundbox/smartbox/unisound/user 目录参考

  • temp
  • unione_lite_app_hb_b
  • apps
  • soundbox
  • smartbox
  • unisound
  • user
user 目录参考


蜂鸟B-BLE: D:/doxygen/src/HummingbirdB_ble 目录参考

  • src
  • HummingbirdB_ble
HummingbirdB_ble 目录参考


蜂鸟B-BLE: D:/temp/unione_lite_app_hb_b 目录参考

  • temp
  • unione_lite_app_hb_b
unione_lite_app_hb_b 目录参考


蜂鸟B-BLE: D:/temp 目录参考

  • temp
temp 目录参考


蜂鸟B-BLE: D:/temp/unione_lite_app_hb_b/apps 目录参考

  • temp
  • unione_lite_app_hb_b
  • apps
apps 目录参考


蜂鸟B-BLE: D:/temp/unione_lite_app_hb_b/apps/soundbox 目录参考

  • temp
  • unione_lite_app_hb_b
  • apps
  • soundbox
soundbox 目录参考


蜂鸟B-BLE: D:/doxygen/src/HummingbirdB_ble/input 目录参考

  • src
  • HummingbirdB_ble
  • input
input 目录参考


蜂鸟B-BLE: D:/temp/unione_lite_app_hb_b/apps/soundbox/smartbox/unisound/ble 目录参考

  • temp
  • unione_lite_app_hb_b
  • apps
  • soundbox
  • smartbox
  • unisound
  • ble
ble 目录参考


蜂鸟B-BLE: 成员变量

这里列出了所有文档化的结构体和联合体的成员变量，并附带结构或联合所属的文件:

- d -

  • device_id : IotMsgDeviceDiscoveryAck
  • device_type : IotMsgDeviceDiscoveryAck

- i -

  • id : IotMsgPropertiesQueryAllAck

- m -

  • msg : IotMsgPropertiesControlAck
  • msg_type : IotMsg , IotMsgDeviceDiscovery , IotMsgDeviceDiscoveryAck , IotMsgPropertiesControl , IotMsgPropertiesControlAck , IotMsgPropertiesQuery , IotMsgPropertiesQueryAck , IotMsgPropertiesQueryAll , IotMsgPropertiesQueryAllAck , IotMsgPropertiesReport

- p -

  • properties : IotMsgPropertiesQueryAllAck
  • property_id : IotMsgPropertiesControl , IotMsgPropertiesQuery , IotMsgPropertiesQueryAck , IotMsgPropertiesReport
  • property_type : IotMsgPropertiesControl , IotMsgPropertiesQueryAck , IotMsgPropertiesReport
  • property_value : IotMsgPropertiesControl , IotMsgPropertiesQueryAck , IotMsgPropertiesReport

- r -

  • ret_code : IotMsgPropertiesControlAck

- t -

  • trace_id : IotMsg , IotMsgDeviceDiscovery , IotMsgDeviceDiscoveryAck , IotMsgPropertiesControl , IotMsgPropertiesControlAck , IotMsgPropertiesQuery , IotMsgPropertiesQueryAck , IotMsgPropertiesQueryAll , IotMsgPropertiesQueryAllAck , IotMsgPropertiesReport
  • type : IotMsgPropertiesQueryAllAck

- v -

  • value : IotMsgPropertiesQueryAllAck


蜂鸟B-BLE: 成员变量 - 变量

- d -

  • device_id : IotMsgDeviceDiscoveryAck
  • device_type : IotMsgDeviceDiscoveryAck

- i -

  • id : IotMsgPropertiesQueryAllAck

- m -

  • msg : IotMsgPropertiesControlAck
  • msg_type : IotMsg , IotMsgDeviceDiscovery , IotMsgDeviceDiscoveryAck , IotMsgPropertiesControl , IotMsgPropertiesControlAck , IotMsgPropertiesQuery , IotMsgPropertiesQueryAck , IotMsgPropertiesQueryAll , IotMsgPropertiesQueryAllAck , IotMsgPropertiesReport

- p -

  • properties : IotMsgPropertiesQueryAllAck
  • property_id : IotMsgPropertiesControl , IotMsgPropertiesQuery , IotMsgPropertiesQueryAck , IotMsgPropertiesReport
  • property_type : IotMsgPropertiesControl , IotMsgPropertiesQueryAck , IotMsgPropertiesReport
  • property_value : IotMsgPropertiesControl , IotMsgPropertiesQueryAck , IotMsgPropertiesReport

- r -

  • ret_code : IotMsgPropertiesControlAck

- t -

  • trace_id : IotMsg , IotMsgDeviceDiscovery , IotMsgDeviceDiscoveryAck , IotMsgPropertiesControl , IotMsgPropertiesControlAck , IotMsgPropertiesQuery , IotMsgPropertiesQueryAck , IotMsgPropertiesQueryAll , IotMsgPropertiesQueryAllAck , IotMsgPropertiesReport
  • type : IotMsgPropertiesQueryAllAck

- v -

  • value : IotMsgPropertiesQueryAllAck


蜂鸟B-BLE: 相关页面

相关页面
这里列出了所有相关页面:
1、简介
2、产品说明
3、获取源码
4、烧录固件
5、搭建开发环境
6、软件架构
7、二次开发
8、IoT方案开发


蜂鸟B-BLE: D:/temp/unione_lite_app_hb_b/apps/soundbox/smartbox/unisound/user/uni_auto_control.h 源文件

  • temp
  • unione_lite_app_hb_b
  • apps
  • soundbox
  • smartbox
  • unisound
  • user
uni_auto_control.h
1 /**************************************************************************
2 * Copyright (C) 2017-2017 Unisound
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License along
15 * with this program; if not, write to the Free Software Foundation, Inc.,
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17 **************************************************************************
18 *
19 * Description : uni_auto_control.h
20 * Author : yuanshifeng@unisound.com
21 * Date : 2021.03.01
22 *
23 **************************************************************************/
24 #ifndef UNI_AUTO_CONTROL_H_
25 #define UNI_AUTO_CONTROL_H_
26
27 int user_gpio_init(void);
28
29 int user_gpio_handle_action_event(const char *action, uint8_t *need_reply, uint8_t *need_post);
30
31 #endif


蜂鸟B-BLE: D:/temp/unione_lite_app_hb_b/apps/soundbox/smartbox/unisound/ble/uni_iot_ble_trans_data.h 源文件

  • temp
  • unione_lite_app_hb_b
  • apps
  • soundbox
  • smartbox
  • unisound
  • ble
uni_iot_ble_trans_data.h
1 /**************************************************************************
2 * Copyright (C) 2018-2027 Unisound
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License along
15 * with this program; if not, write to the Free Software Foundation, Inc.,
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17 **************************************************************************
18 *
19 * Description : uni_iot_ble_trans_data.h
20 * Author :
21 * Date : 2018.06.19
22 *
23 **************************************************************************/
24
25 #ifndef _LE_TRANS_DATA_H
26 #define _LE_TRANS_DATA_H
27
28 #include <stdint.h>
29
30 typedef void (*on_iot_ble_msg)(uint8_t *data, uint16_t size);
31
38 void iot_ble_trans_data_register_msg_cb(on_iot_ble_msg on_msg);
39
47 int iot_ble_trans_data_send(uint8_t *data, uint16_t size);
49 #endif


蜂鸟B-BLE: D:/temp/unione_lite_app_hb_b/apps/soundbox/smartbox/unisound/user/user_flash.h 源文件

  • temp
  • unione_lite_app_hb_b
  • apps
  • soundbox
  • smartbox
  • unisound
  • user
user_flash.h
1 #ifndef USER_FLASH_H_
2 #define USER_FLASH_H_
3
4 #include "cpu.h"
5
16 int user_flash_read(u16 id, void *buff, u16 len);
17
25 int user_flash_write(u16 id, void *buff, u16 len);
27 #endif


蜂鸟B-BLE: D:/temp/unione_lite_app_hb_b/apps/soundbox/smartbox/unisound/user/user_gpio.h 源文件

  • temp
  • unione_lite_app_hb_b
  • apps
  • soundbox
  • smartbox
  • unisound
  • user
user_gpio.h
1 /**************************************************************************
2 * Copyright (C) 2017-2017 Unisound
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License along
15 * with this program; if not, write to the Free Software Foundation, Inc.,
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17 **************************************************************************
18 *
19 * Description : user_gpio.h
20 * Author : yuanshifeng@unisound.com
21 * Date : 2021.03.01
22 *
23 **************************************************************************/
24 #ifndef USER_GPIO_H_
25 #define USER_GPIO_H_
26
27 #include <stdint.h>
28 #include "asm/br23.h"
29 #include "asm/mcpwm.h"
30 #include "asm/clock.h"
31 #include "asm/gpio.h"
32
33 #define PWM_HZ_MAX (1000 * 1000) // max 1MHz (recommand below 40KHz on HB-L)
34 #define GPIO_PWM_MAX 6
35 #define GPIO_UART_MAX 3
36 #define GPIO_PULSE_MAX 4
37
38 typedef struct {
39 uint8_t used;
40 uint32_t lhchannel;
41 uint32_t freq;
42 uint8_t duty;
43 uint8_t inverse;
44 struct pwm_platform_data handle;
45 uint8_t ch;
46 } pwm_info_t;
47
48 typedef struct {
49 UNI_TIMER_TypeDef *timer_handler;
50 int timer_id;
51 int port;
52 int period_ms;
53 int times;
54 int def_val;
55 uint8_t used;
56 uint8_t is_top;
57 } gpio_pulse_t;
58
64 typedef enum {
65 UNI_GPIO_LEVEL_LOW = 0,
66 UNI_GPIO_LEVEL_HIGH
67 } UNI_GPIO_LEVEL_E;
68
72 typedef enum {
73 UNI_GPIO_DIRECTION_OUTPUT = 0,
74 UNI_GPIO_DIRECTION_INPUT,
75 } UNI_GPIO_DIRECTION_E;
76
80 typedef enum {
81 UNI_PIN_NUM_1 = IO_PORT_DM,
82 UNI_PIN_NUM_2 = IO_PORT_DP,
83 UNI_PIN_NUM_3 = IO_PORTA_01,
84 UNI_PIN_NUM_4 = IO_PORTA_00,
85 UNI_PIN_NUM_13 = IO_PORTB_11,
86 UNI_PIN_NUM_14 = IO_PORTB_10,
87 UNI_PIN_NUM_15 = IO_PORTB_09,
88 UNI_PIN_NUM_16 = IO_PORTB_08,
89 UNI_PIN_NUM_17 = IO_PORTB_05,
90 UNI_PIN_NUM_20 = IO_PORTB_01,
91 } UNI_PIN_NUM_E;
92
96 typedef enum {
97 UNI_FUNC_GPIO,
98 UNI_FUNC_UART_TX,
99 UNI_FUNC_UART_RX,
100 UNI_FUNC_PWM
101 } UNI_PIN_FUNC_E;
104 typedef enum {
105 UNI_PWM0H = 0,
106 UNI_PWM0L,
107 UNI_PWM1H,
108 UNI_PWM1L,
109 UNI_PWM2H,
110 UNI_PWM2L,
111 UNI_PWM3H,
112 UNI_PWM3L,
113 UNI_PWM4H,
114 UNI_PWM4L,
115 UNI_PWM5H,
116 UNI_PWM5L,
117 } UNI_PWM_LR_E;
118
126 void user_pin_set_func(UNI_PIN_NUM_E user_pin, UNI_PIN_FUNC_E user_func);
127
135 int user_gpio_set_direction(UNI_PIN_NUM_E user_pin, UNI_GPIO_DIRECTION_E direction);
136
142 int user_gpio_get_level(UNI_PIN_NUM_E pin);
143
151 int user_gpio_set_level(UNI_PIN_NUM_E user_pin, UNI_GPIO_LEVEL_E level);
165 int user_pwm_init(UNI_PIN_NUM_E user_pin, uint32_t freq, uint8_t inverse, uint8_t duty);
173 int user_pwm_duty_inc(uint32_t lhchannel, uint8_t det_duty);
181 int user_pwm_duty_dec(uint32_t lhchannel, uint8_t det_duty);
189 int user_pwm_enable(uint32_t lhchannel, uint8_t duty);
196 int user_pwm_disable(uint32_t lhchannel);
197
205 int user_pwm3_start(u32 freq, u32 duty);
210 void user_pwm3_set_duty(u32 duty);
214 void user_pwm3_stop(void);
230 int user_uart_init(UNI_PIN_NUM_E tx_pin, UNI_PIN_NUM_E rx_pin, uint32_t baudrate,
231 int data_bits, int stop_bits, int parity);
240 int user_uart_send(int port, uint8_t *data, uint32_t size);
249 uint32_t user_uart_recv(int port, uint8_t *data, uint32_t size, uint32_t timeout);
258 int user_uart_recv_byte(int port, uint8_t *data, uint32_t timeout);
272 int user_sw_timer_gpio_pulse(UNI_PIN_NUM_E user_pin, int period_ms, int times, uint8_t dev_val);
274 #endif


蜂鸟B-BLE: D:/temp/unione_lite_app_hb_b/apps/soundbox/smartbox/unisound/ble/user_iot.h 源文件

  • temp
  • unione_lite_app_hb_b
  • apps
  • soundbox
  • smartbox
  • unisound
  • ble
user_iot.h
1 /**************************************************************************
2 * Copyright (C) 2017-2017 Unisound
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License along
15 * with this program; if not, write to the Free Software Foundation, Inc.,
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17 **************************************************************************
18 *
19 * Description : user_gpio.h
20 * Author : yuanshifeng@unisound.com
21 * Date : 2022.01.03
22 *
23 **************************************************************************/
24 #ifndef USER_IOT_H_
25 #define USER_IOT_H_
26
27 #include "bt_preproc.h"
28
35 int user_iot_init(void);
36
43 int user_iot_voice_set(IotMsgPropertiesControl *msg);
44
51 int user_iot_reply_device_property_control(IotMsgPropertiesControl *msg);
52
59 int user_iot_reply_device_property_query(IotMsgPropertiesQuery *msg);
60
67 int user_iot_reply_device_property_query_all(IotMsgPropertiesQueryAll *msg);
68
75 int user_iot_reply_device_discovery(IotMsgDeviceDiscovery *msg);
77 #endif


蜂鸟B-BLE: D:/temp/unione_lite_app_hb_b/apps/soundbox/smartbox/unisound/user/user_player.h 源文件

  • temp
  • unione_lite_app_hb_b
  • apps
  • soundbox
  • smartbox
  • unisound
  • user
user_player.h
1 /**************************************************************************
2 * Copyright (C) 2017-2017 Unisound
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License along
15 * with this program; if not, write to the Free Software Foundation, Inc.,
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17 **************************************************************************
18 *
19 * Description : user_player.h
20 * Author : yuanshifeng@unisound.com
21 * Date : 2021.06.17
22 *
23 **************************************************************************/
24 #ifndef USER_INC_USER_PLAYER_H_
25 #define USER_INC_USER_PLAYER_H_
26
27 #ifdef __cplusplus
28 extern "C" {
29 #endif
30
40 int user_player_play(const char *file);
41
49 int user_player_reply_list_num(const char *file_list, int num);
50
57 int user_player_reply_list_random(const char *file_list);
58
65 int user_player_reply_list_in_order(const char *file_list);
66
72 int user_player_stop(void);
73
77 int user_player_set_volume_min(void);
78
82 int user_player_set_volume_max(void);
83
87 int user_player_set_volume_mid(void);
88
92 int user_player_set_volume_up(void);
93
97 int user_player_set_volume_down(void);
98
102 int user_player_speaker_mute(void);
103
107 int user_player_speaker_unmute(void);
108
112 int user_player_init(void);
115 #ifdef __cplusplus
116 }
117 #endif
118 #endif
119


蜂鸟B-BLE: D:/temp/unione_lite_app_hb_b/apps/soundbox/smartbox/unisound/user/user_timer.h 源文件

  • temp
  • unione_lite_app_hb_b
  • apps
  • soundbox
  • smartbox
  • unisound
  • user
user_timer.h
1 #ifndef USER_TIMER_H_
2 #define USER_TIMER_H_
3
4 typedef void (*user_timer_cb)(void *);
5
16 uint16_t user_timer_create(uint32_t msec, bool single_shot, user_timer_cb cb, void *priv);
23 int user_timer_delete(uint16_t id, bool single_shot);
25 #endif