完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
蓝牙心率防水运动手环 三轴计步伐 ——疯壳·智能穿戴开发系列 三轴记步 1相关简介 本次,我们将使用 DA14580 的硬件 I2C 读取三轴传感器的步数。 I2C 总线是一个为系统中电路通信提供支持的可编程控制总线,它是一个软件定义的两线通信协议。 两线 I2C 串行接口包括一个串行数据线(SDA)和一个串行时钟线(SCL); 支持两种通行速率,标准模式(0~100Kb/s)和快速模式(小于等于 400Kb/s); 时钟同步; 32 字节的发送接收 FIFO; 主机发送与接收操作; 7 或 10 位地址,7 或 10 位混合格式发送; 块发送模式; 默认从地址为 0x055; 中断或者轮询操作模式; 可编程的数据线保持时间; 本次使用的三轴传感器是 LIS2DS12。LIS2DS12 是一种超低功率高性能三轴线性加速度计,具有用户可选择的尺寸 2G/4G/8G/16G,能够测量输出数据速率从1Hz 到 6400Hz 的加速度。并且具有集成的 256 级先入先出(FIFO)缓冲器,让用户在存储数据时,限制主机处理器的干预。LIS2DS12 支持 SPI 和 I2C 两种接口, 我们这里采用的 I2C 接口。 2硬件设计 LIS2DS12 一共有 12 引脚。1 脚 SCL 是时钟信号。2 脚 CS 是 SPI/I2C 使能引脚。第 3 引脚是 SPI 的数据输出,由于这里用的 I2C,这个引脚空余。引脚 SDA 是 I2C 用来传送数据的。还有两个中断脚 INT1、INT2,打开之后,当 LIS2DS12 检测到步数,能产生中断电平。 图 1 3软件设计 首先,完成系统初始化,调用 system_init(),可以参考前面的电量检测。接 下 来 就 是 I2C 的 使 用 了 。 第 一 步 我 们 配 置 I2C 的 相 关 引 脚 。 GPIO_ConfigurePin(I2C_GPIO_PORT, I2C_SCL_PIN, INPUT, PID_I2C_SCL, false); GPIO_ConfigurePin(I2C_GPIO_PORT, I2C_SDA_PIN, INPUT, PID_I2C_SDA, false); 第二步,就是通过下面函数初始化 I2C。 代码1 完成 I2C 的初始化之后, 我们就可以通过 i2c_eeprom_read_byte(uint32_taddress, uint8_t *byte) 对 LIS2DS12 进 行 读 操 作 , 通 过 i2c_eeprom_write_byte(uint32_t address, uint8_t byte)对 LIS2DS12 进行写操作。 通过 I2C 的读写函数,对 LIS2DS12 寄存器进行读写,就能使用 LIS2DS12。详细资料可以查询 LIS2DS12 的 datasheet。 首先,我们是调用函数 status_t LIS2DS12_ACC_R_WHO_AM_I_BIT(u8_t *value) 读 取 设 备 ID , 判 定 是 否 为 正 确 的 设 备 。 然 后 , 我 们 调 用LIS2DS12_ACC_W_SOFT_RESET(LIS2DS12_ACC_SOFT_RESET_t newValue),软件初始化 LIS2DS12 设备。如果读取设备错误或者软件初始化不成功,DA14580 会进入一个空的死循环。最后,我们会进入 Loop_Test_Pedometer(),记步测试。 代码2 4 实验现象 首先,插好 Jlink 和 USB 转串口,然后打开打开串口调试助手。 (1)选择串口号,我们图中是 COM1,这个根据实际情况选择。 (2)配置串口参数,波特率为 115200,数据位 8,停止位 1,没有校验位和控制流,与下图一致。 (3)点击打开串口。 图 2 配置完串口之后,打开我们提供的代码。 (1)点击仿真按键。 图 3 (2)点击运行代码。 图 4 完成上述操作,就会看到串口调试助手区域 4 中会显示出步数,我们摇晃单片机,会发现串口调试助手打印出新的步数,并且步数在增加。 图 5 配套资料:https://www.fengke.club/GeekMart/su_fkZyGYgrp.jsp 配套视频:https://www.fengke.club/GeekMart/su_fTSgUL3y3.jsp 套件地址:http://shop115904315.taobao.com 文件下载请点击:
6_(100%开源)蓝牙心率防水运动手环_三轴计步伐.pdf
(612.82 KB, 下载次数: 1
)
|
|
相关推荐
|
|
1049 浏览 0 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
1017 浏览 2 评论
2123 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1219 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1639 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 03:42 , Processed in 0.659023 second(s), Total 68, Slave 49 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号