赞
踩
测量血氧和心率数值并实时显示在一块OLED屏幕上,可设置测量值的报警范围,实现对心率血氧异常测量值的报警功能。
驱动程序主要参考淘宝店家给的例程:myiic.c max30102.c algorithm.c。
- #include "stm32f10x.h"
- #include "SysTick.h"
- #include "timer.h"
- #include "string.h"
- #include "oled.h"
- #include "delay.h"
- #include "key.h"
- #include "stdio.h"
- #include "BUZZ.h"
- #include "max30102.h"
- Tim Tim2_T;
- DELAY_t DELAY_T;
- key_t Key_T;
- Menu_t Menu_T;
- vu8 Timer0_start;
- u8 shijian;
- u8 Times;
- timer_t Timer4_T;
- extern const char xin_lv[];
- extern const char xue_yang[];
- extern const char xin_lv_ce_shi_yi[];
- extern const char shu_zhi[];
- extern const char yu_zhi[];
- int main(void)
- {
- NVIC_Configuration(); //中断管理程序
- SysTick_Init_Config(); //系统时钟管理
- delay_init(); //延时函数初始化
- Timer2_Init_Config(7199, 9999); //1s进一次中断
- TIM4_Int_Init(9,7199); //定时器按键扫描
- Key_Init(); //按键初始化
- BUZZ_INIT(); //蜂鸣器初始化
- OLED_Init(); //液晶屏初始化
- OLED_Clear(); //液晶屏清屏幕
- OLED_Show_Chinese(34, 0, shu_zhi, 2); // 液晶屏显示“数值”
- OLED_Show_Chinese(80, 0, yu_zhi, 2); //液晶屏显示“阈值”
- OLED_Show_Chinese(0, 3, xin_lv, 2); //液晶屏显示“心率”
- OLED_Show_Chinese(0, 5, xue_yang, 2); //液晶屏显示"血氧"
- LCD_DISPLAY_HR_SPO2(); //在液晶上显示初试的心率和血氧
- LCD_DISPLAY_HR_THRESHOLD(); //在液晶上显示设置的阈值
- max30102_init(); //血氧模块初始化
- while(1) //进入循环
- {
- key_action();//按键检测处理程序
- MAX30102_READ_HEART_RATE();//读取血氧和心率,并在液晶上显示,如果心率超过阈值,则报警
- ALARM_BUZZ();//如果血氧超过阈值,则报警
-
- if(Tim2_T._1s_Flag == 1)//1S中周期进程
- {
- Tim2_T._1s_Flag = 0;
- LCD_DISPLAY_HR_THRESHOLD();//液晶内容更新
- }
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。