《8(100%开源)蓝牙心率防水运动手环_三轴计步伐.docx》由会员分享,可在线阅读,更多相关《8(100%开源)蓝牙心率防水运动手环_三轴计步伐.docx(7页珍藏版)》请在第一文库网上搜索。
1、蓝牙心率防水运动手环三轴计步伐智能穿戴开发系列配套资料:https:/www.fengke.club/GeekMart/su_fkZyGYgrp.jsp配套视频:https:/www.fengke.club/GeekMart/su_fTSgUL3y3.jsp三轴记步1相关简介本次,我们将使用DA14580的硬件12c读取三轴传感器的步数。12c总线是一个为系统中电路通信提供支持的可编程控制总线,它是一个软件定义的两线通信协议。两线12c串行接口包括一个串行数据线(SDA)和一个串行时钟线(SCL);支持两种通行速率,标准模式(0100Kb/s)和快速模式(小于等于400Kb/s);时钟同步;3
2、2字节的发送接收FIFO;主机发送与接收操作;7或10位地址,7或10位混合格式发送;块发送模式;默认从地址为0x055;中断或者轮询操作模式;可编程的数据线保持时间;本次使用的三轴传感器是LIS2DS12o LIS2DS12是一种超低功率高性能三轴线性加速度计,具有用户可选择的尺寸2G/4G/8G/16G,能够测量输出数据速率从1Hz到6400Hz的加速度。并且具有集成的256级先入先出(FIFO)缓冲器,让用户在存储数据时,限制主机处理器的干预。LIS2DS12支持SPI和12c两种接口,我们这里采用的12c接口。2 硬件设计LIS2DS12一共有12引脚。工脚SCL是时钟信号。2脚CS是
3、SPI/12c使能引脚。第3引脚是SPI的数据输出,由于这里用的I2C,这个引脚空余。引脚SDA是12c用来传送数据的。还有两个中断脚INTI、INT2,打开之后,当LIS2DS12检测到步数,能产生中断电平。VBLE图13软件设计首先,完成系统初始化,调用system_init(),可以参考前面的电量检测。接下来就是12c的使用了。第一步我们配置I2C的相关引脚oGPICGcxrePirXl2CLGPICLPORT; I2CSCL_PIN, INPUT, PID_I2C_SCLZ false);GPIO_ConfigurePin(l2C_GPIO_PORT/ I2C_SDA_PIN, INP
4、UT, PIDJ2C_SDA, false);第二步,就是通过下面函数初始化l2Covoid i2c_eeprom_init(uintl6_t dev_address, uint8_t speed, uint8_t address_mode, uint8_taddress_size)mem address size = address size;VMMMB,SetBitsl6(CLK_PER_REG, I2C_ENABLE, 1);/ 使能 I2C 时钟SetWordl6(l2C_ENABLE_REG,0x0); / 关闭 I2C 的控制器SetWordl6(l2C_CON_REG, I2C_
5、MASTER_MODE | I2C_SLAVE_DISABLE | I2C_RESTART_EN);/失能从设备SetBitsl6(l2C_CON_REG,l2C_SPEED, speed);设置传送速度SetBitsl6(l2C_CON_REGJ2C_10BITADDR_MASTER,address_mode);/ 设置寻址方式SetWordl6(l2C_TAR_REG,dev_address & 0x3FF); 设置从设备地址SetWordl6(l2C_ENABLE_REG,0xl); / 使能 I2C 控制器WAIT_UNTIL_NO_MASTER_ACTIVITY(); / 等待 I2
6、C 主机 FSM 空闲i2c dev address = dev address;代码1完成I2C的初始化之后,我们就可以通过i2c_eepromead_byte(uint32_taddress, uint8_t *byte)对 LIS2DS12 进行读操作,通过i2c_eeprom_write_byte(uint32_t address, uint8_t byte)对 LIS2DS12 进行写操作。通过12c的读写函数,对LIS2DS12寄存器进行读写,就能使用LIS2DS12o详细资料可以查询LIS2DS12的datasheeto首先,我们是调用函数 status t LIS2DS12 A
7、CC 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(),记步测试。static void Loop_Test_Pedometer(void)(init_LIS2DS12_Pedometer(); 胃已置计步器LIS2DS12_ACC_W_RST_NS
8、TEP(LIS2DS12_ACC_RST_NSTEP_ON); 步数清零while(l) LIS2DS12_ACC_Get_StepCounter(u8_t *)&Number_Of_Steps); 读取步数值)代码24实验现象首先,插好Jlink和USB转串口,然后打开打开串口调试助手。(D 选择串口号,我们图中是C0M1,这个根据实际情况选择。配置串口参数,波特率为115200,数据位8,停止位1,没有校验位和控制流,与下图一致。点击打开串口。I k SSCOM3.2 %W瀛1海0),i53. Email: mcu52l_ | 口| x|4打开文件皮佯茗发送文件I保存窗口 I清除窗口 I厂
9、hex显示串口号|COM1T GDI115200 字符串输入框:皮特率姗位止位验位/ww.mcu.cor帮助QDTRr RTS时发送南一 ms/次r HEX发送厂发送额行WWW. MCU51 .COM扩展 |None None 二PCB打样那家强?当然就是嘉立创!【官网】其方创FCB打样-SMT贴片一元器件商城一条龙服率打样话加助理粱雁嬉的QQ: 800058315环情技术:品IS排苓:WiFi/Gprs/GPS【安信可射频模组】【西议单升级为SSC0M5. 13版】可在wild0运行!R:0COM1 已关闭 115200bps CTS=0 DSR=0 RL / ;图2配置完串口之后,打开我们
10、提供的代码(1)点击仿真按键。图3(2)点击运行代码。图4完成上述操作,就会看到串口调试助手区域4中会显示出步数,我们摇晃单片机,会发现串口调试助手打印出新的步数,并且步数在增加。 SSCOM3.2 (作者:聂主页http:/www.mcu51.8m. Email: meThe numberThe numberof stepsof stepsi sisThe numberof stepsisThe numberof stepsi sThe numberof stepsi sThe nij/nbero stepsi sThe numberof stepsi sThe numberof steps
11、i sThe numb2rof stepsi sThe numberof stepsi sThe numberof stepsi sThe numbero stepsisThe numberof stepsisThe numberof stepsisThe numbero stepsi sThe numberof stepsi sThe numberof stepsi s01234567890127 00 JI 41 1A 41 1A 11 1a 1a 1a 1a 0/ Cl打开文件I位隔串口号|C0M3二关闭串口 I发送文件1保存窗口 |清除窗口 |厂HEX显示帮助 WWW.MCUS1.COM 扩展|波特率数据位停止位r DTR 厂 RTSr定时发送画-松/次厂HEX发送 一发送新行字符串输入框:PCB打样那家强?当然就是嘉立创!【官网】嘉方向IPCB打样-SMT贴片一元器件商城一条龙眼至打样话加助倬粱降短的QQ : 800058315 GP懂特术:品牌推行力iFi/Gprs/GFS 安信可射频榄组】发送1点送果升级为SSC0M5. 13版】可在winlO运行!流控制! None;I图5/ww.mcu51.cor S:0R:455COM3已打开 115200bps CTS=O DSR=O RL /