# Health_watch_STM32
健康手表
### ADXL345三轴传感器
本次设计采用的是ADXL345三轴传感器来检测当前行走的步数,ADXL345有2种通信方式,我们采用的是IIC进行数据传输。首先我们需要在程序里面配置IIC数据传输的引脚分别为SCL对应A6 ,SDL对应A7,然后对ADXL345进行初始化Init_ADXL345();写入开始信号和停止信号。void ADXL345_Start();void ADXL345_Stop();接收应答信号:bit ADXL345_RecvACK(),ADXL345开始读取采集到的数据BYTE ADXL345_RecvByte();读取ADXL345的加速度值,从而判断是否发生位移void Multiple_read_ADXL345(void);如果读取到的数据为0XE5表示发生位移行走。devid=Single_Read_ADXL345(0X00); if(devid!=0XE5)
### DS18B20内部结构
主要由4部分组成:64 位ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码,每个DS18B20的64位序列号均不相同。64位ROM的排的循环冗余校验码(CRC=X^8+X^5+X^4+1)。 ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。
开启开关电源后,温度传感器开始工作DS18B20先进性初始化WENDU(int temperature);
程序按数据手册的时序图编写子函数模块:
1 :DS18B20 复位函数:resetDS18B20(void0)
2:写一位的函数: WriteBit (unsigned char wb)
3读一位的函数: unsigned char ReadBit (void)
4:读一个字节的函数unsigned char readByteDS18B20(void) 即将位读取的时序循环 8 次。
5:写一个字节的函数:void writeByteDS18B20(unsigned char Data) 。即将位写入的时序循环 8 次。
### MAX30102芯片对人体心率血氧
本次设计采用的是MAX30102芯片对人体心率血氧进行采集,MAX30102我们采用的是IIC进行通信首先我们需要在程序里面配置IIC数据传输的引脚分别进行配置,然后对IIC进行初始化bsp_InitI2C(); MAX30102写寄存器函数maxim_max30102_write_reg(uint8_t uch_addr, uint8_t uch_data); MAX30102读寄存器函数maxim_max30102_read_reg(uint8_t uch_addr, uint8_t *puch_data); MAX30102初始化maxim_max30102_init(); MAX30102读缓冲器FIFO maxim_max30102_read_fifo(uint32_t *pun_red_led, uint32_t *pun_ir_led); 计算心率和血氧饱和度,通过检测PPG (photoplethysmographic,光电容积脉搏波描记法)周期的峰值和相应的红/红外信号的AC/DC,计算出SPO2的an/u比值和心率值
maxim_heart_rate_and_oxygen_saturation(uint32_t *pun_ir_buffer, int32_t n_ir_buffer_length, uint32_t *pun_red_buffer, int32_t *pn_spo2, int8_t *pch_spo2_valid,int32_t *pn_heart_rate, int8_t *pch_hr_valid);
### OLED
此次设计我们采用的是单片机的内部iic,所以我们需要进行配置才可以正常使用。我们结合iic时序图以及需要显示的内容进行处理。I2C 总线是主从结构,单片机是主器件,存储器是从器件。一条总线可以带多个从器件( 也可以有多主结构),I2C 总线的SDA 和SCL 是双向的,开路门结构,通过上拉电阻接正电源。进行数据传输时,SDA 线上的数据必须在时钟的高电平周期保持稳定。数据线的高或低电平状态只有在SCL 线的时钟信号是低电平时才能改变.
首先stm32单片机进行配置引脚STM32F103C8T6 引脚I2C: PB6 -- SCL; PB7 -- SDA ,GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_OD; I2C引脚必须要开漏输出,I2C_DeInit(I2C1);//使用IIC引脚。void I2C_WriteByte(uint8_t addr,uint8_t data)iic进行写入数据信息I2C_GenerateSTART(I2C1, ENABLE);开启I2C1 I2C_SendData(I2C1, addr);寄存器地址I2C_SendData(I2C1, data);发送数据I2C_GenerateSTOP(I2C1, ENABLE);关闭I2C1总线 void WriteCmd(unsigned char I2C_Command)写命令void WriteDat(unsigned char I2C_Data)//写数据void OLED_Init(void) IIC初始化,显示当前数据
### 蓝牙串口
为蓝牙串口模块,ATK-HC05模块是主从一体的,而且性能较高,可以与PDA、手机、电脑等具有蓝牙功能的设备实现配对,该模块所支持的波特率范围非常大,为4800~1382400,而且该模块和3.3V或5V的单片机系统相兼容,极其方便、灵活。
在建立微微网前,一切设备都是就绪状态,在此状态中,每1.28s未连接的设备便会对一次消息进行监听,唤醒设备后,在监听信息时可以预设32个调频频率,主设备初始化后实现连接进程。倘若已知设备的地址,通过页信息实现连接;倘若地址是未知的,那么通过页信息的查询信息实现连接。微微网中,如果设备未进行数据传输,那么它便进入节能状态。主设备设置从设备为保持方式,此过程中处于工作状态的只有内部定时器;从设备亦可以进入到保持方式。设备一旦转出保持方式便可以开始数据传输。在和几个微微网相连,或者对低功耗器件进行管理时,常用保持方式。低功耗的另外两种工作方式是休眠、监听方式。鉴于蓝牙基带技术,其支持面向连接方式、无连接方式,前者传输语音,后者传输分组数据,温度数据就通过无连接方式传输。
蓝牙采用的是跳频和时分多址技术。为了使频谱扩展,需要利用伪随机码序列实现频移键控,此载波频率发生跳变,即为跳频。传统通信系统中使用定频方式,在发射机中,主振荡器具有固定的振荡频率,为了实现载波频率的跳变,得到跳频信号,按照控制指令改变主振荡器的频率。能够得到跳频信号的装置被称作跳频器,它主要包括跳频指令发生器、频率合成器。如果将跳频器等同于主振荡器,那么和传统的发信机没有任何不同。可以对模拟、数字形式的信号进行传送,之后利用调制器实现调制,进而得到固定频率的已调波信号,接着和频率合成器的主载波频率信号实现混频,此时输出载波频率符合射频通带要求的已调波信号,在经过高通滤波器反馈后,利用天线将信号发射出去,此过程即为发送定频信号的过程。时分多址是分割时间为不重叠的帧,再分割帧为不重叠的信道,和用户一一对应,主要利用信道对地质不同的信号进行区分,实现多址连接。
### 蓝牙串口
没有合适的资源?快使用搜索试试~ 我知道了~
基于STM32的智能手环心率体温步数时间显示.rar
共111个文件
h:44个
c:41个
s:8个
需积分: 5 0 下载量 186 浏览量
2024-01-30
14:03:29
上传
评论
收藏 385KB RAR 举报
温馨提示
基于STM32的智能手环心率体温步数时间显示
资源推荐
资源详情
资源评论
收起资源包目录
基于STM32的智能手环心率体温步数时间显示.rar (111个子文件)
HelTec.uvgui.Aaron_Lee 138KB
HelTec.uvguix.Administrator 145KB
keilkilll.bat 372B
stm32f10x_tim.c 104KB
stm32f10x_flash.c 59KB
stm32f10x_rcc.c 49KB
stm32f10x_adc.c 45KB
stm32f10x_i2c.c 43KB
stm32f10x_can.c 43KB
stm32f10x_usart.c 36KB
system_stm32f10x.c 35KB
stm32f10x_fsmc.c 34KB
stm32f10x_spi.c 29KB
stm32f10x_dma.c 28KB
stm32f10x_sdio.c 27KB
stm32f10x_gpio.c 22KB
main.c 19KB
stm32f10x_dac.c 18KB
core_cm3.c 16KB
algorithm.c 14KB
stm32f10x_cec.c 11KB
OLED_I2C.c 9KB
stm32f10x_pwr.c 8KB
stm32f10x_rtc.c 8KB
stm32f10x_bkp.c 8KB
myiic.c 7KB
max30102.c 7KB
misc.c 7KB
stm32f10x_exti.c 7KB
stm32f10x_wwdg.c 5KB
stm32f10x_dbgmcu.c 5KB
stm32f10x_iwdg.c 5KB
ds1302.c 5KB
stm32f10x_it.c 4KB
stmflash.c 3KB
usart1.c 3KB
ds18b20.c 3KB
stm32f10x_crc.c 3KB
adxl345.c 3KB
iic.c 2KB
delay.c 2KB
timer.c 1KB
key.c 991B
led.c 645B
Template_STM32F103C8_1.0.0.dbgconf 7KB
.gitattributes 66B
.gitignore 371B
stm32f10x.h 611KB
core_cm3.h 82KB
stm32f10x_tim.h 50KB
stm32f10x_rcc.h 29KB
stm32f10x_i2c.h 29KB
stm32f10x_can.h 26KB
stm32f10x_fsmc.h 26KB
stm32f10x_flash.h 24KB
stm32f10x_sdio.h 21KB
stm32f10x_adc.h 21KB
stm32f10x_dma.h 20KB
stm32f10x_gpio.h 19KB
stm32f10x_spi.h 17KB
codetab.h 17KB
stm32f10x_usart.h 16KB
stm32f10x_dac.h 15KB
misc.h 9KB
stm32f10x_bkp.h 7KB
stm32f10x_exti.h 6KB
adxl345.h 6KB
stm32f10x_cec.h 6KB
stm32f10x_pwr.h 4KB
algorithm.h 4KB
max30102.h 4KB
stm32f10x_rtc.h 4KB
stm32f10x_dbgmcu.h 4KB
stm32f10x_iwdg.h 4KB
stm32f10x_conf.h 3KB
stm32f10x_wwdg.h 3KB
sys.h 2KB
stm32f10x_crc.h 2KB
system_stm32f10x.h 2KB
stm32f10x_it.h 2KB
ds1302.h 2KB
stmflash.h 1KB
OLED_I2C.h 875B
ds18b20.h 725B
key.h 403B
iic.h 397B
myiic.h 396B
usart1.h 393B
led.h 282B
delay.h 169B
timer.h 97B
HelTec.hex 73KB
HelTec.uvguix.JINCHANG 89KB
LICENSE 1KB
HelTec.uvguix.Maibenben 75KB
HelTec.uvgui.Maibenben 69KB
HelTec.uvguix.MBB 73KB
README.md 6KB
startup_stm32f10x_xl.s 15KB
startup_stm32f10x_cl.s 15KB
共 111 条
- 1
- 2
资源评论
时光の尘
- 粉丝: 3958
- 资源: 203
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- VID20240521070643.mp4
- Android系统原理与开发学习要点详解-培训课件.zip
- 部署yolov8的tensorrt模型支持检测分割姿态估计的C++源码+部署步骤.zip
- 以简单、易用、高性能为目标、开源的时序数据库,支持Linux及Windows, Time Series Database.zip
- python-leetcode面试题解之第198题打家劫舍-题解.zip
- python-leetcode面试题解之第191题位1的个数-题解.zip
- python-leetcode面试题解之第186题反转字符串中的单词II-题解.zip
- 一个基于python的web后端高性能开发框架,下载可用
- python-leetcode面试题解之第179题最大数-题解.zip
- python-leetcode面试题解之第170题两数之和III数据结构设计-题解.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功