- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于STM32的智能⼿环系统的设计
前⾔
随着科学技术的⾰新,智能化⽣活已经开始实现, 多的⼈们的⽬光聚焦在智能化产品上⾯,⼀⽅⾯是对⾃⾝健康的关注,另⼀⽅⾯是对便
携轻松的⽣活的向往,智能⼿环就作为其中的⼀种代表性产物。其主要应⽤于运动显⽰⽐如显⽰⾏⾛及跑步的步数,距离,速度。同时可以
实时健康监测⽐如⼼率,⾎氧,体温等。是⼀款突出个性与⼈性的智能化产物。
⼀、系统⽅案的设计
1.1系统功能分析
本设计是由STM32F103C8T6最⼩系统电路,DS3231时钟模块,ADXL345计步模块,MAX30102⾎氧⼼率模块,DS18B20温度模
块,MPU6050体位检测模块,2.4⼨TFT彩⾊液晶屏显⽰模块组成的嵌⼊式智能⼿环系统。
(1)通过DS3231时钟模块实现⽇期显⽰的功能
(2)使⽤传感器ADXL345检测⼈步数
(3)通过MAX30102传感器实时检测⾎氧⼼率;
(4)通过传感器DS18B20进⾏温度测量。
(5)通过MPU6050体位检测卧床病⼈是否跌倒或可以通过此功能蜂鸣器警报呼叫。
(6)通过2.4⼨TFT彩⾊液晶屏实时显⽰⽇期,步数,距离,⼼率,⾎氧,跌倒状态以及温度值。
1.2系统总体结构
⼆、硬件电路的搭建
2.1STM32最⼩系统组成部分
2.2S硬件引脚连接
三、软件设计
本设计采⽤轮询的操作⽅式,⾸先在系统中断中间隔不同的时间给相应的标志位置⼀,⽐如:计步每隔0.2s计步标志位置⼀,时钟每隔1s
置⼀⼀次。然后在主循环中检测标志位,如果标志位置⼀。刷新相应的值。
3.1系统流程图
3.2主函数代码
#include stm32f 10x.h
#include delay.h
#include led.h
#include uart.h
#include stdio.h
#include ds18b20.h
#include Lcd Driver.h
#include T FT demo.h
#include GUI.h
#include key.h
#include mpu6050.h
#include inv mpu.h
#include inv mpu dmp motion driver.h
#include math.h
#include MAX30100.h
#include MAX30100 Filters.h
#include MAX30100 PulseOximeter.h
#include MAX30100 SpO2Calculator.h
#include myiic.h
#include timer3.h
#include adxl345.h
#include myiic 2.h
#include DS3231.h
u8 ReadAdxl345 ; //定时读取adxl345数据
u8 ErrorNum=0; //记录错误次数
u16 Normal num=0; //正常次数
u16 Error num=0; //倾斜次数
u16 BuShu=0; //步数脉冲量
u16 step num = 0; //计数步数
float disJuLi = 0; //显⽰距离
float disJuLi = 0; //显⽰距离
signed short HeartRate val=0; //⼼跳速率
u8 SPO2 val = 0; //⾎氧浓度
u8 mpu count = 0;
u8 STAP FLAG = 0;
u8 mpu flag = 0; //⼈体跌倒检测标志位 标志位1、2任意⼀个异常 该标志位为1 【1:跌倒,0 :正常】
Bool mpu 1 flag = 0; //⼈体跌倒检测标志位1 ⾓度异常标志 【1:异常,0 :正常】
Bool mpu 2 flag = 0; //⼈体跌倒检测标志位2 加速度异常标志
原创力文档


文档评论(0)