串口透传

串口透传
前言:
有了上面的基础,接下来就可以打造无线串口功能了。
实现平台:WeBee CC2540模块及功能底板
图  3.117网蜂CC2540模块及功能底板
实验现象:
两台PC通过串口连接CC2540,通过设置好串口调试助手,就可以相互收发信息。也可在一台PC利用两个串口实现这个功能。
实验讲解:
整个实验用到两个模块,一个作为服务器、一个作为客户端,重点为下面两个方向:
残疾人无障碍设施1、客户端接收串口数据写入特征值
2、服务器接收串口数据并写入特征值,再通知主机
本实验需要用到两个特征值,两个特征值的属性各不相同,我们同样在SimpleGATTProfile中新建即可,接下来就开始吧。
新建特征值表:
表  3.3串口透传特征值属性
长度
(byte)
属性UUID功能
SIMPLEPROFILE_CHA
R615可读可写FFF6服务器接收客户端的串口
数据
SIMPLEPROFILE_CHA
R715不能直接读写,
通过通知发送
FFF7客户端接收服务器的串口
数据
1.1.1客户端接收串口数据并写入特征值
如何新建特征值我们上一节讲得很清楚了,SIMPLEPROFILE_CHAR6可以直接利用上一节中新建的特征值,这里把字长改为15即可,并在static void simpleProfileChangeCB(uint8paramID)函数中添加CHAR6改变的处理函数,这里是串口输出,我们的格式是:串口数据的长度(1Byte)+数据(14Byte)
1.case SIMPLEPROFILE_CHAR6://串口透传Profile
2.char newchar[15];
3.SimpleProfile_GetParameter(SIMPLEPROFILE_CHAR6,newchar);
4.if(newchar[0]>=15)
5.{
6.HalUARTWrite(0,&newchar[1],14);
7.HalUARTWrite(0,"...\n",4);
8.}
9.elsegpd
10.{
11.HalUARTWrite(0,&newchar[1],newchar[0]);
12.}
13.break;
图  3.118CHAR6接收
接下来是simpleBLECentral的写入:
在对CHAR1的写入代码中
1.//Do a write
2.attWriteReq_t req;
3.
9.GATT_WriteCharValue(simpleBLEConnHandle,&req,
simpleBLETaskId);
进入static void simpleBLEGATTDiscoveryEvent(gattMsgEvent_t*pMsg)函数
图  3.119读取Handle
图3.120已获取CHAR1handle
这里我们就可以明白simpleBLECharHd1何来了,把这段改为我们需要的读取CHAR6的Handle然后调用
王亚忱GATT_ReadUsingCharUUID(simpleBLEConnHandle,&req, simpleBLETaskId);
就可以获取到该特征值的属性。
图  3.121读取CHAR6Handle值
下一步就是串口的接收与CHAR6的写入,直接来分析代码
1.uint8gStatus;
2.static void simpleBLEPeripheral_HandleSerial(mtOSALSerialData_t
*cmdMsg)
3.{
4.uint8i,len,*str=NULL;//len有用数据长度
5.uint8CMD;
6.str=cmdMsg->msg;//指向数据开头
7.len=*str;//msg里的第1个字节代表后面的数据长度8.
9.if((simpleBLEState==BLE_STATE_CONNECTED)&&
(simpleBLECharHd6!=0))//写char6
10.{
11.uint8ValueBuf[SIMPLEPROFILE_CHAR6_LEN];
12.
13.if(len>=SIMPLEPROFILE_CHAR6_LEN)len=间硝基苯胺
SIMPLEPROFILE_CHAR6_LEN;
14.else len+=1;
15.for(i=0;i<=len;i++)
16.ValueBuf[i]=str[i];
17.全自动绗缝机
18.gattPrepareWriteReq_t req;
19.
tftlcd接口
24.osal_memcpy(req.pValue,ValueBuf,SIMPLEPROFILE_CHAR6_LEN);
25.GATT_WriteLongCharValue(simpleBLEConnHandle,&req,
simpleBLETaskId);
26.
27.}
28.else
29.{
30.HalUARTWrite(0,"Not Connect\n",12);
31.}
32.
33.}

本文发布于:2024-09-23 21:29:18,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/613783.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:串口   特征值   数据   接收   写入   客户端   服务器   功能
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议