2183|1

1297

帖子

2

TA的资源

纯净的硅(中级)

楼主
 

【ST AMG SensorTile开发大赛 健身小管家】03 sensorTile 蓝牙开发初探 [复制链接]

 
还是从最基本的ALLMEMS1出发
main函数流程
首先是一些硬件和外设上的初始化
- HAL_Init();
- SystemClock_Config();
- InitTargetPlatform(TARGET_SENSORTILE);
这一行比较重要,主要就是在初始化板上的各种传感器(TargetPlatform.c)
Init_MEM1_Sensors();
BSP_GG_Init();
Init_MEMS_Mics();
其中Init_MEM1_Sensors();包含了大部分的初始化工作,其实都是调用BSP_xx_Init函数。不过很奇怪一点,Temperature Sensor1是用自动模式,其实就是初始化LPS22HB_T_0,这个是正常的, 但是Sensor2也是指定初始化LPS22HB_T_0,返回的却是Error。难道是发现已经初始化过了?

接下来做的就是和蓝牙相关的事情了,


第一个函数:
设定板子的名称、地址,并初始化gap和gatt
第二个函数:
添加3个服务,这个就是用户代码的主要部分了,这些都在sensor_service里面

while(1):循环操作部分
如果没有连接,那么闪烁,设为可连接的,等待连接
循环判断是否有MEMSInterrupt、HCI_ProcessEvent、SendEnv、SendAudioLevel、SendAccGyroMag等事件,有的话,做对应的处理。

下面就来看看添加服务的具体过程。蓝牙主要就是用service来提供数据,这些定义都在sensor_service.c中。不过st蓝牙部分的函数基本没有注释啊,不知道哪里可以找到API说明。我们以最简单的Add_ConfigW2ST_Service()为例来看,(@160,ref @ 1049)。过程都非常简单,
- copy service UUID,aci_gatt_add_serv()
- copy char UUID,aci_gatt_add_char()

当有属性被改变时,会调用
Attribute_Modified_CB:属性变化的回调函数,判断哪个属性变了,调用对应的函数。如果是config的char被改变了,那么就执行
ConfigCommandParsing:解析配置命令,完成操作,@1609
并通过Config_Notify对配置进行回应,LED的控制也在这个里面。验证方式如下:
找一个BLE调试工具,连接上我们的sensorTile,选择最后一个service,里面就一个属性,点进去,发送hex串0x200000000100就可以点亮sensorTile的LED,而发送hex串0x200000000000则是sensorTile的LED。sensorTile完成操作后,会notify操作的结果给手机,st的app应该就是根据notify回来的

不得不说,这些代码看的头有点涨,只要是没找到合适的资料。哎,看看后面能不能把mems数据的发送给搞明白。

最新回复

本帖最后由 alberthink 于 2017-4-21 14:24 编辑 代码的说明在C:\Program Files (x86)\STMicroelectronics\BlueMicrosystem1_V3.2.0\Documentation下面有一部分的。至于低功耗蓝牙的服务/属性等等的添加和调用,可以参考PM0237   详情 回复 发表于 2017-4-21 14:23
点赞 关注
 
 

回复
举报

111

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
本帖最后由 alberthink 于 2017-4-21 14:24 编辑

代码的说明在C:\Program Files (x86)\STMicroelectronics\BlueMicrosystem1_V3.2.0\Documentation下面有一部分的。至于低功耗蓝牙的服务/属性等等的添加和调用,可以参考PM0237

PM0237 programming manual.pdf

1.14 MB, 下载次数: 15

BLUENRG编程手册

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表