全志XR806蓝牙透传(单向)测试

评测三 蓝牙透传(单向)
有时无线透传在无法布线时有很方便的效用,不妨试试蓝牙透传,效果如下:

具体是无线数据->串口数据,串口数据->无线数据,目前前者实现了,后者还有些问题未解决,

在这里插入图片描述

实现过程如下,基于工程demo/Bluetooth/peripheral_demo改成peripheral_uart_demo,同时目录下peripheral_uart_demo/gcc/defconfig文件里工程名也改成peripheral_uart_demo,然后引入串口读写独立接口即把demo/at_demo下的serial.c、serial.h、serial_debug.h复制到刚才peripheral_uart_demo工程下,由于要无线写以及串口写转无线,所以profile涉及到write_without_rsp和notify,具体配置为:
服务 特征
UUID 12345678-1234-5678-56789abcdef0 12345678-1234-5678-56789abcdef1
Properties Write no response/Notify

static struct bt_gatt_attr vnd_attrs[] = {/* Vendor Primary Service Declaration */BT_GATT_PRIMARY_SERVICE(&vnd_uuid),BT_GATT_CHARACTERISTIC(&vnd_enc_uuid.uuid,BT_GATT_CHRC_WRITE_WITHOUT_RESP | BT_GATT_CHRC_NOTIFY,BT_GATT_PERM_WRITE,NULL, write_without_rsp_vnd, &vnd_value),BT_GATT_CCC(vnd_ccc_notify_changed, BT_GATT_PERM_READ|BT_GATT_PERM_WRITE),
};

写回调接口为:

/**********************vnd_write_cmd_uuid*****************************/
static ssize_t write_without_rsp_vnd(struct bt_conn *conn,const struct bt_gatt_attr *attr,const void *buf, uint16_t len, uint16_t offset,uint8_t flags)
{uint8_t *value = attr->user_data;/* Write request received. Reject it since this char only accepts* Write Commands.*/if (!(flags & BT_GATT_WRITE_FLAG_CMD)) {return BT_GATT_ERR(BT_ATT_ERR_WRITE_REQ_REJECTED);}if (offset + len > sizeof(vnd_value)) {return BT_GATT_ERR(BT_ATT_ERR_INVALID_OFFSET);}memset(value, 0, sizeof(vnd_value));memcpy(value + offset, buf, len);serial_write(value + offset, len);*(value + offset + len) = '\0';printf("\r\nwrite_without_rsp_vnd");return len;
}

串口转无线回调(有问题):

static void vnd_notify(void)
{static uint8_t vnd[MAX_LONG_DATA];uint16_t len=0;if (!vnd_notif_enabled)return;printf("\r\nnotify\r\n");serial_read(vnd_notify_value,len);if(len>MAX_LONG_DATA || len==0)return;memcpy(vnd, vnd_notify_value, len);printf("\r\nvnd_notify\r\n");bt_gatt_notify(NULL, &vnd_svc.attrs[1], vnd, sizeof(vnd));
}

然后在bt_app_init函数里加入透传口UART1的初始化代码即可:

	serial_init(SERIAL_UART_ID, 115200, UART_DATA_BITS_8, UART_PARITY_NONE,UART_STOP_BITS_1, 0);serial_start();

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/204860.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

支持生成接口文档!Apipost IDEA插件使用体验

前言 Idea 是一款功能强大的集成开发环境(IDE),它可以帮助开发人员更加高效地编写、调试和部署软件应用程序,Idea 还具有许多插件和扩展,可以根据开发人员的需要进行定制和扩展,从而提高开发效率,今天我们就来介绍一款…

持续集成交付CICD:Sonarqube多分支代码扫描

目录 一、实验 1.Sonarqube安装插件 2.Sonarqube多分支代码扫描 一、实验 1.Sonarqube安装插件 (1)不同软件版本对应不同插件版本 (2)插件对应版本下载安装 将下载好的插件包(sonarqube-community-branch-plugin…

三层交换机配置DHCP服务

第一步:进入二层交换机Switch 1)输入命令: Switch(config)#vlan 10 Switch(config)#vlan 20 2)修改F0/1 和F0/2为access口,F0/24为trunk口 第二步:进入三层交换机 1)输入命令 Switch(config)#…

每日一练2023.12.7—— 情人节【PTA】

题目链接:L1-035 情人节 题目要求: 以上是朋友圈中一奇葩贴:“2月14情人节了,我决定造福大家。第2个赞和第14个赞的,我介绍你俩认识…………咱三吃饭…你俩请…”。现给出此贴下点赞的朋友名单,请你找出…

PPT设置章节

0 Preface/Foreward 1 添加章节方法 选择 > 开始 > 节 可以进行: 新增节重命名节删除所有节 相关节的内容如下:

超大规模集成电路设计----FPGA时序模型及FSM的设计(八)

本文仅供学习,不作任何商业用途,严禁转载。绝大部分资料来自----数字集成电路——电路、系统与设计(第二版)及中国科学院段成华教授PPT 超大规模集成电路设计----RTL级设计之FSM(八) 7.1 CPLD的时序模型7.1.1 XPLA3 时序模型7.1.…

maven篇---第三篇

系列文章目录 文章目录 系列文章目录前言一、如何解决依赖传递引起的版本冲突?二、说说maven的依赖原则三、说说依赖的解析机制?四、说说插件的解析机制前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男…

postgresql从入门到精通 - 第37讲:postgres物理备份和恢复概述

PostgreSQL从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱PG、学习PG的同学们有帮助,欢迎持续关注CUUG PG技术大讲堂。 第37讲&#…

麒麟信安系统下的硬盘分区情况说明

目前飞腾平台上面麒麟信安系统分区情况如下: Tmpfs为内存文件系统,可以不考虑,真正使用的是两个分区 两个分区加起来为51G 查看cat /etc/fstab可以看到/data这个分区下包含了home opt root等常用文件夹 再加上这个分区容量只有17G&#xff0c…

TCP单聊和UDP群聊

TCP协议单聊 服务端: import java.awt.BorderLayout; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.V…

EG网关串口连接威纶通触摸屏应用案例

EG网关串口连接威纶通触摸屏应用案例 威纶通触摸屏广泛应于工业控制领域,是一款性能高,运行稳定的人机交互设备。此次我们要把威纶通的触摸屏通过Modbus-RTU协议连接EG系列网关,实现电脑Web页面和手机APP对威纶通触摸屏的远程数据采集和读取…

种下一棵栀子花

女孩说自己是男孩当年伸手就可触及的栀子花.男孩沉默了,明白了当初失去了什么. 时光倒流,13年前的一个夏天夜晚,男孩与女孩同在沪城,女孩分享了自己的照片给男孩.男孩站在窗前,那晚的夜空很美丽,仿佛托着那个白衣裳女孩的纯真的梦,来到了自己的身边. 女孩说彼此间只是少了一个深…

11K+ Star!图解计算机网络、操作系统、计算机组成、数据库!

大家好,我是 Java陈序员。 俗话说得好,面试造火箭,入职拧螺丝。我们在工作中,其实很少用到一些计算机底层知识,往往只要编码完事。但是,知其然还要知其所以然,我们不仅要做一个合格的“CV 工程…

校园后勤数字化转型要怎么做?的修工单管理系统的功能强大吗?

2023年11月27日-29日,由中国教育后勤协会主办,广东省高校后勤协会、物业管理专业委员会、能源管理专业委员会、安全管理专业委员会、中小学后勤分会等协办的第六届中国教育后勤展览会在深圳圆满落幕。 广东工程宝科技有限公司以其创新的“的修工单管理系…

搜维尔科技:Varjo XR-4 系列-专为极致沉浸感而打造!

Varjo 的新一代头显将世界上最先进的混合现实技术与顶尖的图形处理能力连接起来,满足最高级别的视觉保真度和沉浸感至关重要的工业用例。 光学设计的根本性突破 体验全新的沉浸感。大幅扩展的视野,跨越 120 x 105 度,打破了受人尊敬的“全双眼…

【数据结构】手撕排序

🔥博客主页: 小羊失眠啦. 🎥系列专栏:《C语言》 《数据结构》 《Linux》《Cpolar》 ❤️感谢大家点赞👍收藏⭐评论✍️ 文章目录 一、排序的概念及其运用1.1 排序的概念1.2 常见的算法排序 二、 冒泡排序三、直接插入排…

解析企业云性能监控几个重要作用

随着企业业务的数字化转型,云计算在企业中的应用越来越广泛。在这个背景下,保障云计算环境的性能和稳定性显得尤为重要。企业云性能监控作为一种有效的管理手段,对于确保云计算系统的顺利运行和业务的高效展开起到了关键作用。以下是企业云性…

彻底解决org.gradle.api.artifacts.DependencySubstitutions

需求背景 最近在使用android studio导入hbuilder的HBuilder-Integrate-AS工程时候报错,错误消息如下两种。 错误描述 第一种 Failed to notify dependency resolution listener. void org.gradle.api.artifacts.DependencySubstitutions$Substitution.with(org.g…

9.68亿美元!2024,美国重金押注量子科技

11月29日,美国众议院科学、空间和技术委员会通过了一项重要法案——《国家量子计划重新授权法案》。这项法案不仅将支持期限延长至2028财年,还将重点放在量子技术在现代场景中的应用上;标志着美国对这一可能定义未来技术格局的科学领域的承诺…

了解linux日志

本章主要介绍Linux中的日志管理 了解rsyslog是如何管理日志的 查看日志的方法 日志中记录了各种各样的问题,所以读取日志是检测并排除故障的一个重要方式,日志文 件默认放在/var/log目录下。不同的问题要读取不同的日志,例如,邮…