|
一、本次使用到的例程 例程:C:\Users\JHC\Desktop\stsw-stwinkt\stsw-stwinkt01\STSW-STWINKT01_V2.2.0\Projects\BLE_SampleApp BLE_SampleApp例程为通过BLE传输温湿度等信息到手机端,符合本次实验的基本要求 ①例程架构 主要功能: 初始化STM32L4系列MCU 初始化BlueNRG BLE模块 周期性地采集传感器数据(温度、湿度、气压) 通过BLE服务将数据发送到连接的客户端 核心组件: 传感器:LPS22HH(气压/温度)、HTS221(湿度)、STTS751(温度) BLE模块:BlueNRG系列 定时器:TIM1用于触发数据发送 二、需添加的组件 在上述组件的基础上还需要添加用于测试振动信息的代码 使用BSP中官网代码即可 路径:C:\Users\JHC\Desktop\stsw-stwinkt\stsw-stwinkt01\STSW-STWINKT01_V2.2.0\Drivers\BSP\Components\iis3dwb
三、代码调试 ①使用IDE软件打开官方例程BLE_SampleApp
②添加需要的BSP程序 这里直接拖动就可以(左键点文件,拖到此目录下)
③代码修改 添加头文件 include "iis3dwb.h" // IIS3DWB加速度计驱动include "STWIN_conf.h" // STWIN板级配置include "STWIN_motion_sensors.h" // 运动传感器接口增加全局变量 float ax, ay, az; // 加速度值(单位:g) uint8_t device_id; // 传感器ID float odr; // 输出数据率 int32_t fullscale; // 满量程范围 BSP_MOTION_SENSOR_Axes_t g_accelerometer; // 加速度数据结构 main函数中初始化加速计 // 1. 初始化IIS3DWB加速度计 if (BSP_MOTION_SENSOR_Init(IIS3DWB_0, MOTION_ACCELERO) != BSP_ERROR_NONE) { while(1); // 初始化失败则死循环 } // 2. 读取设备ID(验证通信) if (BSP_MOTION_SENSOR_ReadID(IIS3DWB_0, &device_id) == BSP_ERROR_NONE) { printf("IIS3DWB Device ID: 0x%02X\n", device_id); } // 3. 设置输出数据率(100Hz) BSP_MOTION_SENSOR_SetOutputDataRate(IIS3DWB_0, MOTION_ACCELERO, 100.0f); // 4. 设置满量程(±16g) BSP_MOTION_SENSOR_SetFullScale(IIS3DWB_0, MOTION_ACCELERO, 16); // 5. 获取当前配置(验证配置是否成功) BSP_MOTION_SENSOR_GetOutputDataRate(IIS3DWB_0, MOTION_ACCELERO, &odr); BSP_MOTION_SENSOR_GetFullScale(IIS3DWB_0, MOTION_ACCELERO, &fullscale); // 6. 启用传感器 BSP_MOTION_SENSOR_Enable(IIS3DWB_0, MOTION_ACCELERO); 主循环中读取加速计 // 读取加速度数据 if (BSP_MOTION_SENSOR_GetAxes(IIS3DWB_0, MOTION_ACCELERO, &g_accelerometer) == BSP_ERROR_NONE) { // 数据单位转换:原始数据为mg,转换为g ax = (float)g_accelerometer.x / 1000.0f; ay = (float)g_accelerometer.y / 1000.0f; az = (float)g_accelerometer.z / 1000.0f; } 修改传感器发送函数里面的参数为所需参数 原函数: Environmental_Update(PressToSend, HumToSend, Temp2ToSend, Temp1ToSend); 改为: // 添加了电池电压读取 uint16_t bat_vol; BSP_BC_GetVoltage(&bat_vol); // 修改了Environmental_Update的参数 Environmental_Update(ax, az, Temp2ToSend, (float)bat_vol/1000.0f); 再次此基础上可以编译以及烧录,但是振动数据就是没有 通过查询资料才知道,需要在STWIN_conf.h文件中将IIS3WB使能(将0改为1) 如下图
四、手机端查看数据 手机APP: ST BLE Sensor 手机端原显示数据与现数据对比
视频:(摇动demo时候,ax、az变化,手指放在温度传感器后温度变化等) 后续有时间将进行其他实验 只有实践了才知道自己的不足,加油吧 |
微信公众号
手机版