61

编程入门 行业动态 更新时间:2024-10-13 18:19:33

61

61

功能介绍:采用stm32单片机作为主控CPU,采用MAX30102采集当前的心率和血氧含量,采用DS18B20传感器采集温度,采用LCD1602显示屏显示温度,心率,血氧浓度,并且可以通过蓝牙HC-06模块将数据上传到手机APP,程序有中文注释,新手容易看懂,文末有资料分享:

下面是实物演示视频和相关实物图片

61-基于stm32单片机心率体温检测LCD1602显示蓝牙上传(程序+原理图+元件清单全套资料)

下面是程序部分展示(程序有中文注释,新手容易看懂)

程序部分展示:int main(void){    int i=0;  USART_CONFIG();//串口初始化  IIC_GPIO_INIT();//IIC协议初始化  OLED_Init();  //OLED初始化  fill_picture(0x00);  Adc_Init();//adc初始化  Ds18b20_Init();//18b20初始化  DS18B20_Read_Temperature();//读取温度值  LCD1602_Init();//LCD1602初始化  MAX30102_GPIO();//心率传感器初始化  LCD1602_Init();//LCD1602初始化  beep=1;  Max30102_reset();//复位传感器    MAX30102_Config();
  for(i = 0;i < 128;i++) //传感器校验  {    while(MAX30102_INTPin_Read()==0)    {      //读取FIFO      max30102_read_fifo();    }  }  while(1)  {        deal_Temp();//读取温度函数    blood_Loop();//读取心率函数  }}
void IIC_Start(void)
{IIC_SCL_1;IIC_SDA_1;//启始信号建立时间 0.6us 400KHzIIC_Delay();IIC_SDA_0;IIC_Delay();//启始信号保持时间0.6usIIC_SCL_0;IIC_Delay();//时钟低电平时间1.3us
}void IIC_Stop(void)
{	IIC_SDA_0;IIC_SCL_1;IIC_Delay();//结束信号建立时间0.6usIIC_SDA_1;IIC_Delay();//总线空闲时间时间1.3us
}void IIC_Send_Byte(uint8_t byte)
{uint8_t i;//先发送高位for(i=0;i<8;i++){if(byte & 0x80){IIC_SDA_1;}else{IIC_SDA_0;}IIC_Delay();IIC_SCL_1;IIC_Delay();IIC_SCL_0;IIC_Delay();byte<<=1;}IIC_SDA_1;  IIC_Delay();IIC_SCL_1;IIC_Delay();if(IIC_SDA_READ){ack=1;}else{ack=0;}IIC_SCL_0;IIC_Delay();
}uint8_t IIC_Receive_Byte(void)
{uint8_t receive=0;uint8_t i;//置数据线为输入方式for(i=0;i<8;i++){     		receive<<=1;IIC_SCL_1;//置时钟线为高使数据线上数据有效IIC_Delay();if(IIC_SDA_READ){receive++;//读数据位,接收的数据位放入retc中}IIC_SCL_0;  IIC_Delay();}return receive;
}

程序打开办法:特别注意:下载资料包以后一定要先解压!(建议解压到桌面上,文件路径太深会导致程序打开异常),解压后再用keil5打开。

下面是原理图,采用【AD】altium designer打开,文件中有安装包

下面是资料包里面包含的相关文件展示

百度云盘资料下载链接

更多推荐

61

本文发布于:2024-02-11 19:40:18,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1682989.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!