当前位置:   article > 正文

stm32+max30102传感器测量心率和血氧饱和度_max30102与stm32

max30102与stm32

主要功能

       测量血氧和心率数值并实时显示在一块OLED屏幕上,可设置测量值的报警范围,实现对心率血氧异常测量值的报警功能。

物料清单

 PCB

实物图

程序编写 

驱动程序主要参考淘宝店家给的例程:myiic.c  max30102.c  algorithm.c。

  1. #include "stm32f10x.h"
  2. #include "SysTick.h"
  3. #include "timer.h"
  4. #include "string.h"
  5. #include "oled.h"
  6. #include "delay.h"
  7. #include "key.h"
  8. #include "stdio.h"
  9. #include "BUZZ.h"
  10. #include "max30102.h"
  11. Tim Tim2_T;
  12. DELAY_t DELAY_T;
  13. key_t Key_T;
  14. Menu_t Menu_T;
  15. vu8 Timer0_start;
  16. u8 shijian;
  17. u8 Times;
  18. timer_t Timer4_T;
  19. extern const char xin_lv[];
  20. extern const char xue_yang[];
  21. extern const char xin_lv_ce_shi_yi[];
  22. extern const char shu_zhi[];
  23. extern const char yu_zhi[];
  24. int main(void)
  25. {
  26. NVIC_Configuration(); //中断管理程序
  27. SysTick_Init_Config(); //系统时钟管理
  28. delay_init(); //延时函数初始化
  29. Timer2_Init_Config(7199, 9999); //1s进一次中断
  30. TIM4_Int_Init(9,7199); //定时器按键扫描
  31. Key_Init(); //按键初始化
  32. BUZZ_INIT(); //蜂鸣器初始化
  33. OLED_Init(); //液晶屏初始化
  34. OLED_Clear(); //液晶屏清屏幕
  35. OLED_Show_Chinese(34, 0, shu_zhi, 2); // 液晶屏显示“数值”
  36. OLED_Show_Chinese(80, 0, yu_zhi, 2); //液晶屏显示“阈值”
  37. OLED_Show_Chinese(0, 3, xin_lv, 2); //液晶屏显示“心率”
  38. OLED_Show_Chinese(0, 5, xue_yang, 2); //液晶屏显示"血氧"
  39. LCD_DISPLAY_HR_SPO2(); //在液晶上显示初试的心率和血氧
  40. LCD_DISPLAY_HR_THRESHOLD(); //在液晶上显示设置的阈值
  41. max30102_init(); //血氧模块初始化
  42. while(1) //进入循环
  43. {
  44. key_action();//按键检测处理程序
  45. MAX30102_READ_HEART_RATE();//读取血氧和心率,并在液晶上显示,如果心率超过阈值,则报警
  46. ALARM_BUZZ();//如果血氧超过阈值,则报警
  47. if(Tim2_T._1s_Flag == 1)//1S中周期进程
  48. {
  49. Tim2_T._1s_Flag = 0;
  50. LCD_DISPLAY_HR_THRESHOLD();//液晶内容更新
  51. }
  52. }
  53. }

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号