精华内容
下载资源
问答
  • MAX30102例程,实测已经能够稳定输出
  • MAX30102,在stm32上的驱动程序
  • MAX30102是一个集成的脉搏血氧仪和心率监测仪生物传感器的模块。它集成了多个LED、光电检测器、光器件,以及带环境光抑制的低噪声电子电路。MAX30102提供完备的系统方案,使移动及可穿戴设备的设计过程变得轻松。
  • MAX30102

    2021-04-26 20:43:23
    } /* 用来读取FIFO的数据 总共六个字节前三属于RED 后三属于IR */ //这里读一个样品采样点 void max30102_FIFO_ReadBytes(u8 Register_Address,u8* Data) { max30102_Bus_Read(REG_INTR_STATUS_1); max30102_Bus...
    #include "myiic.h"
    #include "delay.h"
    
    //初始化IIC
    void IIC_Init(void)
    {					     
    	GPIO_InitTypeDef GPIO_InitStructure;
    	//RCC->APB2ENR|=1<<4;//先使能外设IO PORTC时钟 
    	RCC_APB2PeriphClockCmd(	RCC_APB2Periph_GPIOB, ENABLE );	
    	   
    	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7|GPIO_Pin_8;
    	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP ;   //推挽输出
    	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    	GPIO_Init(GPIOB, &GPIO_InitStructure);
     
    	IIC_SCL=1;
    	IIC_SDA=1;
    
    }
    //产生IIC起始信号
    void IIC_Start(void)
    {
    	SDA_OUT();     //sda线输出
    	IIC_SDA=1;	  	  
    	IIC_SCL=1;
    	delay_us(4);
     	IIC_SDA=0;//START:when CLK is high,DATA change form high to low 
    	delay_us(4);
    	IIC_SCL=0;//钳住I2C总线,准备发送或接收数据 
    }	  
    //产生IIC停止信号
    void IIC_Stop(void)
    {
    	SDA_OUT();//sda线输出
    	IIC_SCL=0;
    	IIC_SDA=0;//STOP:when CLK is high DATA change form low to high
     	delay_us(4);
    	IIC_SCL=1; 
    	IIC_SDA=1;//发送I2C总线结束信号
    	delay_us(4);							   	
    }
    //等待应答信号到来
    //返回值:1,接收应答失败
    //        0,接收应答成功
    u8 IIC_Wait_Ack(void)
    {
    	u8 ucErrTime=0;
    	SDA_IN();      //SDA设置为输入  
    	IIC_SDA=1;delay_us(1);	   
    	IIC_SCL=1;delay_us(1);	 
    	while(READ_SDA)
    	{
    		ucErrTime++;
    		if(ucErrTime>250)
    		{
    			IIC_Stop();
    			return 1;
    		}
    	}
    	IIC_SCL=0;//时钟输出0 	   
    	return 0;  
    } 
    //产生ACK应答
    void IIC_Ack(void)
    {
    	IIC_SCL=0;
    	SDA_OUT();
    	IIC_SDA=0;
    	delay_us(2);
    	IIC_SCL=1;
    	delay_us(2);
    	IIC_SCL=0;
    }
    //不产生ACK应答		    
    void IIC_NAck(void)
    {
    	IIC_SCL=0;
    	SDA_OUT();
    	IIC_SDA=1;
    	delay_us(2);
    	IIC_SCL=1;
    	delay_us(2);
    	IIC_SCL=0;
    }					 				     
    //IIC发送一个字节
    //返回从机有无应答
    //1,有应答
    //0,无应答			  
    void IIC_Send_Byte(u8 txd)
    {                        
        u8 t;   
    	SDA_OUT(); 	    
        IIC_SCL=0;//拉低时钟开始数据传输
        for(t=0;t<8;t++)
        {              
            IIC_SDA=(txd&0x80)>>7;
            txd<<=1; 	  
    		delay_us(2);   //对TEA5767这三个延时都是必须的
    		IIC_SCL=1;
    		delay_us(2); 
    		IIC_SCL=0;	
    		delay_us(2);
        }	 
    } 	    
    //读1个字节,ack=1时,发送ACK,ack=0,发送nACK   
    u8 IIC_Read_Byte(unsigned char ack)
    {
    	unsigned char i,receive=0;
    	SDA_IN();//SDA设置为输入
        for(i=0;i<8;i++ )
    	{
            IIC_SCL=0; 
            delay_us(2);
    		IIC_SCL=1;
            receive<<=1;
            if(READ_SDA)receive++;   
    		delay_us(1); 
        }					 
        if (!ack)
            IIC_NAck();//发送nACK
        else
            IIC_Ack(); //发送ACK   
        return receive;
    }
    
    
    void IIC_WriteBytes(u8 WriteAddr,u8* data,u8 dataLength)
    {		
    	u8 i;	
        IIC_Start();  
    
    	IIC_Send_Byte(WriteAddr);	    //发送写命令
    	IIC_Wait_Ack();
    	
    	for(i=0;i<dataLength;i++)
    	{
    		IIC_Send_Byte(data[i]);
    		IIC_Wait_Ack();
    	}				    	   
        IIC_Stop();//产生一个停止条件 
    	delay_ms(10);	 
    }
    
    
    void IIC_ReadBytes(u8 deviceAddr, u8 writeAddr,u8* data,u8 dataLength)
    {		
    	u8 i;	
        IIC_Start();  
    
    	IIC_Send_Byte(deviceAddr);	    //发送写命令
    	IIC_Wait_Ack();
    	IIC_Send_Byte(writeAddr);
    	IIC_Wait_Ack();
    	IIC_Send_Byte(deviceAddr|0X01);//进入接收模式			   
    	IIC_Wait_Ack();
    	
    	for(i=0;i<dataLength-1;i++)
    	{
    		data[i] = IIC_Read_Byte(1);
    	}		
    	data[dataLength-1] = IIC_Read_Byte(0);	
        IIC_Stop();//产生一个停止条件 
    	delay_ms(10);	 
    }
    
    
    
    
    void IIC_Read_One_Byte(u8 daddr,u8 addr,u8* data)
    {				  	  	    																 
        IIC_Start();  //1
    	
    	IIC_Send_Byte(daddr);	   //发送写命令	2
    	IIC_Wait_Ack();//3
    	IIC_Send_Byte(addr);//发送地址	4
    	IIC_Wait_Ack();		 //5
    	IIC_Start();  	 	//6   
    	IIC_Send_Byte(daddr|0X01);//进入接收模式		7	   
    	IIC_Wait_Ack();	// 8
        *data = IIC_Read_Byte(0);		   //9 10
        IIC_Stop();//产生一个停止条件	    //11
    }
    
    void IIC_Write_One_Byte(u8 daddr,u8 addr,u8 data)
    {				   	  	    																 
        IIC_Start();  //1
    	
    	IIC_Send_Byte(daddr);	    //发送写命令		2
    	IIC_Wait_Ack();//3
    	IIC_Send_Byte(addr);//发送地址	4
    	IIC_Wait_Ack();	   	 	//5									  		   
    	IIC_Send_Byte(data);     //发送字节				6			   
    	IIC_Wait_Ack();  	//7	    	   
        IIC_Stop();//产生一个停止条件 	8
    	delay_ms(10);	 
    }
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    #include "max30102.h"
    #include "myiic.h"
    #include "delay.h"
    
    
    //void IIC_Read_One_Byte(u8 daddr,u8 addr,u8* data)
    //void IIC_Write_One_Byte(u8 daddr,u8 addr,u8 data)
    /*
    上面两个函数和下面两个函数功能是一样
    
    
    */
    u8 max30102_Bus_Write(u8 Register_Address, u8 Word_Data)
    {
    
    	/* 采用串行EEPROM随即读取指令序列,连续读取若干字节 */
    
    	/* 第1步:发起I2C总线启动信号 */
    	IIC_Start();//1
    
    	/* 第2步:发起控制字节,高7bit是地址,bit0是读写控制位,0表示写,1表示读 */
    	IIC_Send_Byte(max30102_WR_address | I2C_WR);	/* 此处是写指令 *///2
    
    	/* 第3步:发送ACK */
    	if (IIC_Wait_Ack() != 0)//3
    	{
    		goto cmd_fail;	/* EEPROM器件无应答 */
    	}
    
    	/* 第4步:发送字节地址 */
    	IIC_Send_Byte(Register_Address);//4
    	if (IIC_Wait_Ack() != 0)//5
    	{
    		goto cmd_fail;	/* EEPROM器件无应答 */
    	}
    	
    	/* 第5步:开始写入数据 */
    	IIC_Send_Byte(Word_Data);//6
    
    	/* 第6步:发送ACK */
    	if (IIC_Wait_Ack() != 0)//7
    	{
    		goto cmd_fail;	/* EEPROM器件无应答 */
    	}
    
    	/* 发送I2C总线停止信号 */
    	IIC_Stop();//8
    	return 1;	/* 执行成功 */
    
    cmd_fail: /* 命令执行失败后,切记发送停止信号,避免影响I2C总线上其他设备 */
    	/* 发送I2C总线停止信号 */
    	IIC_Stop();
    	return 0;
    }
    
    
    
    u8 max30102_Bus_Read(u8 Register_Address)
    {
    	u8  data;
    
    
    	/* 第1步:发起I2C总线启动信号 */
    	IIC_Start();//1
    
    	/* 第2步:发起控制字节,高7bit是地址,bit0是读写控制位,0表示写,1表示读 */
    	IIC_Send_Byte(max30102_WR_address | I2C_WR);	/* 此处是写指令 *///2
    
    	/* 第3步:发送ACK */
    	if (IIC_Wait_Ack() != 0)//3
    	{
    		goto cmd_fail;	/* EEPROM器件无应答 */
    	}
    
    	/* 第4步:发送字节地址, */
    	IIC_Send_Byte((uint8_t)Register_Address);//4
    	if (IIC_Wait_Ack() != 0)//5
    	{
    		goto cmd_fail;	/* EEPROM器件无应答 */
    	}
    	
    
    	/* 第6步:重新启动I2C总线。下面开始读取数据 */
    	IIC_Start();//6
    
    	/* 第7步:发起控制字节,高7bit是地址,bit0是读写控制位,0表示写,1表示读 */
    	IIC_Send_Byte(max30102_WR_address | I2C_RD);	/* 此处是读指令 *///7
    
    	/* 第8步:发送ACK */
    	if (IIC_Wait_Ack() != 0)//8
    	{
    		goto cmd_fail;	/* EEPROM器件无应答 */
    	}
    
    	/* 第9步:读取数据 */
    	{
    		data = IIC_Read_Byte(0);	/* 读1个字节 *///9 10
    
    		IIC_NAck();	/* 最后1个字节读完后,CPU产生NACK信号(驱动SDA = 1) *///这里可以不要吗
    	}
    	/* 发送I2C总线停止信号 */
    	IIC_Stop();//11
    	return data;	/* 执行成功 返回data值 */
    
    cmd_fail: /* 命令执行失败后,切记发送停止信号,避免影响I2C总线上其他设备 */
    	/* 发送I2C总线停止信号 */
    	IIC_Stop();
    	return 0;
    }
    
    //这个没用上
    void max30102_FIFO_ReadWords(u8 Register_Address,u16 Word_Data[][2],u8 count)
    {
    	u8 i=0;
    	u8 no = count;
    	u8 data1, data2;
    	/* 第1步:发起I2C总线启动信号 */
    	IIC_Start();//1
    
    	/* 第2步:发起控制字节,高7bit是地址,bit0是读写控制位,0表示写,1表示读 */
    	IIC_Send_Byte(max30102_WR_address | I2C_WR);	/* 此处是写指令 *///2
    
    	/* 第3步:发送ACK */
    	if (IIC_Wait_Ack() != 0)//3
    	{
    		goto cmd_fail;	/* EEPROM器件无应答 */
    	}
    
    	/* 第4步:发送字节地址, */
    	IIC_Send_Byte((uint8_t)Register_Address);//4
    	if (IIC_Wait_Ack() != 0)//5
    	{
    		goto cmd_fail;	/* EEPROM器件无应答 */
    	}
    	
    
    	/* 第6步:重新启动I2C总线。下面开始读取数据 */
    	IIC_Start();//6
    
    	/* 第7步:发起控制字节,高7bit是地址,bit0是读写控制位,0表示写,1表示读 */
    	IIC_Send_Byte(max30102_WR_address | I2C_RD);	/* 此处是读指令 *///7
    
    	/* 第8步:发送ACK */
    	if (IIC_Wait_Ack() != 0)//8
    	{
    		goto cmd_fail;	/* EEPROM器件无应答 */
    	}
    
    	/* 第9步:读取数据 */
    	while (no)
    	{
    		data1 = IIC_Read_Byte(0);	//9
    		IIC_Ack();//	10
    		data2 = IIC_Read_Byte(0);//11
    		IIC_Ack();//12
    		Word_Data[i][0] = (((u16)data1 << 8) | data2);  //
    
    		
    		data1 = IIC_Read_Byte(0);	//13
    		IIC_Ack();//14
    		data2 = IIC_Read_Byte(0);//15
    		if(1==no)
    			IIC_NAck();	/* 最后1个字节读完后,CPU产生NACK信号(驱动SDA = 1) */
    		else
    			IIC_Ack();
    		Word_Data[i][1] = (((u16)data1 << 8) | data2); 
    
    		no--;	
    		i++;
    	}
    	/* 发送I2C总线停止信号 */
    	IIC_Stop();
    
    cmd_fail: /* 命令执行失败后,切记发送停止信号,避免影响I2C总线上其他设备 */
    	/* 发送I2C总线停止信号 */
    	IIC_Stop();
    }
    
    
    
    /*
    用来读取FIFO的数据
    总共六个字节前三属于RED
    后三属于IR
    
    
    
    */
    //这里读一个样品采样点
    
    void max30102_FIFO_ReadBytes(u8 Register_Address,u8* Data)
    {	
    	max30102_Bus_Read(REG_INTR_STATUS_1);
    	max30102_Bus_Read(REG_INTR_STATUS_2);
    	
    	/* 第1步:发起I2C总线启动信号 */
    	IIC_Start();
    
    	/* 第2步:发起控制字节,高7bit是地址,bit0是读写控制位,0表示写,1表示读 */
    	IIC_Send_Byte(max30102_WR_address | I2C_WR);	/* 此处是写指令 */
    
    	/* 第3步:发送ACK */
    	if (IIC_Wait_Ack() != 0)
    	{
    		goto cmd_fail;	/* EEPROM器件无应答 */
    	}
    
    	/* 第4步:发送字节地址, */
    	IIC_Send_Byte((uint8_t)Register_Address);
    	if (IIC_Wait_Ack() != 0)
    	{
    		goto cmd_fail;	/* EEPROM器件无应答 */
    	}
    	
    
    	/* 第6步:重新启动I2C总线。下面开始读取数据 */
    	IIC_Start();
    
    	/* 第7步:发起控制字节,高7bit是地址,bit0是读写控制位,0表示写,1表示读 */
    	IIC_Send_Byte(max30102_WR_address | I2C_RD);	/* 此处是读指令 */
    
    	/* 第8步:发送ACK */
    	if (IIC_Wait_Ack() != 0)
    	{
    		goto cmd_fail;	/* EEPROM器件无应答 */
    	}
    
    	/* 第9步:读取数据 */
    	Data[0] = IIC_Read_Byte(1);	
    	Data[1] = IIC_Read_Byte(1);	
    	Data[2] = IIC_Read_Byte(1);	
    	Data[3] = IIC_Read_Byte(1);
    	Data[4] = IIC_Read_Byte(1);	
    	Data[5] = IIC_Read_Byte(0);
    	/* 最后1个字节读完后,CPU产生NACK信号(驱动SDA = 1) */
    	/* 发送I2C总线停止信号 */
    	IIC_Stop();
    
    cmd_fail: /* 命令执行失败后,切记发送停止信号,避免影响I2C总线上其他设备 */
    	/* 发送I2C总线停止信号 */
    	IIC_Stop();
    
    
    }
    
    
    /*
    初始化
    
    
    */
    void max30102_init(void)
    {
    	GPIO_InitTypeDef GPIO_InitStructure;
    
     	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);	
    	GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_14;
    	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
     	GPIO_Init(GPIOB, &GPIO_InitStructure);
    	
    	IIC_Init();
    	
    	max30102_reset();
    	
    
    	
    	
    	
    	max30102_Bus_Write(REG_INTR_ENABLE_1,0xc0);	// INTR setting
    	max30102_Bus_Write(REG_INTR_ENABLE_2,0x00);
    	max30102_Bus_Write(REG_FIFO_WR_PTR,0x00);  	//FIFO_WR_PTR[4:0]
    	max30102_Bus_Write(REG_OVF_COUNTER,0x00);  	//OVF_COUNTER[4:0]
    	max30102_Bus_Write(REG_FIFO_RD_PTR,0x00);  	//FIFO_RD_PTR[4:0]
    	max30102_Bus_Write(REG_FIFO_CONFIG,0x0f);  	//sample avg = 1, fifo rollover=false, fifo almost full = 17
    	max30102_Bus_Write(REG_MODE_CONFIG,0x03);  	//0x02 for Red only, 0x03 for SpO2 mode 0x07 multimode LED
    	max30102_Bus_Write(REG_SPO2_CONFIG,0x27);  	// SPO2_ADC range = 4096nA, SPO2 sample rate (100 Hz), LED pulseWidth (400uS)  
    	max30102_Bus_Write(REG_LED1_PA,0x24);   	//Choose value for ~ 7mA for LED1
    	max30102_Bus_Write(REG_LED2_PA,0x24);   	// Choose value for ~ 7mA for LED2
    	max30102_Bus_Write(REG_PILOT_PA,0x7f);   	// Choose value for ~ 25mA for Pilot LED
    
    
    	
    
    											
    }
    
    void max30102_reset(void)
    {
    	max30102_Bus_Write(REG_MODE_CONFIG,0x40);
    	max30102_Bus_Write(REG_MODE_CONFIG,0x40);
    }
    
    
    
    
    
    
    void maxim_max30102_write_reg(uint8_t uch_addr, uint8_t uch_data)
    {
    
    	IIC_Write_One_Byte(I2C_WRITE_ADDR,uch_addr,uch_data);
    }
    
    void maxim_max30102_read_reg(uint8_t uch_addr, uint8_t *puch_data)
    {
    
    	IIC_Read_One_Byte(I2C_WRITE_ADDR,uch_addr,puch_data);
    }
    
    void maxim_max30102_read_fifo(uint32_t *pun_red_led, uint32_t *pun_ir_led)
    {
    	uint32_t un_temp;
    	unsigned char uch_temp;
    	char ach_i2c_data[6];
    	*pun_red_led=0;
    	*pun_ir_led=0;
    
      
      //read and clear status register
      maxim_max30102_read_reg(REG_INTR_STATUS_1, &uch_temp);
      maxim_max30102_read_reg(REG_INTR_STATUS_2, &uch_temp);
      
      IIC_ReadBytes(I2C_WRITE_ADDR,REG_FIFO_DATA,(u8 *)ach_i2c_data,6);
      
      un_temp=(unsigned char) ach_i2c_data[0];
      un_temp<<=16;
      *pun_red_led+=un_temp;
      un_temp=(unsigned char) ach_i2c_data[1];
      un_temp<<=8;
      *pun_red_led+=un_temp;
      un_temp=(unsigned char) ach_i2c_data[2];
      *pun_red_led+=un_temp;
      
      un_temp=(unsigned char) ach_i2c_data[3];
      un_temp<<=16;
      *pun_ir_led+=un_temp;
      un_temp=(unsigned char) ach_i2c_data[4];
      un_temp<<=8;
      *pun_ir_led+=un_temp;
      un_temp=(unsigned char) ach_i2c_data[5];
      *pun_ir_led+=un_temp;
      *pun_red_led&=0x03FFFF;  //Mask MSB [23:18]
      *pun_ir_led&=0x03FFFF;  //Mask MSB [23:18]
    }
    
    

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • MAX30102完整教程,包含教程以及数据手册,代码等
  • MAX30102心率上位机

    2021-01-01 16:21:37
    MAX30102心率上位机
  • MAX30102EVKitSetup.rar

    2020-04-10 12:50:24
    MAX30102EVKitSetup 最新版 MAX30100 MAX30102 工具 上位机
  • MAX30102 芯片,可提供更好的性能。 ProtoCentral 的脉冲传感器板是我们开放式医疗硬件产品线的新成员。 Maxim 的 MAX30100 是一款出色的新产品,它将脉搏血氧仪所需的一切(包括 LED 和光电二极管!!)集成在一个...
  • MAX30102EVKitSetupV1.2.zip

    2020-06-17 09:58:51
    File Name: MAX30102EVKitSetupV1.2.zip Description: Integrated Optical Sensor Operating Systems Supported: Windows 7,Windows 8.0/8.1,Windows 10 Required Hardware: MAX30102ACCEVKIT# Related Product...
  • max30102资料

    2017-09-10 17:24:13
    max30102用来测量人体血氧饱和度、心率的全部资料,包括算法、硬件设计还有微处理器(单片机和arduino)的程序
  • Sivak-Max30102-SPO2-OLED-测量 二手的ESP32,MAX30102传感器和OLED。 库:U8g2lib.h MAX30102.h algorithm_by_RF.h BLE2902.h BLEDevice.h BLEServer.h BLEUUID.h BLEUtils.h 参见 带有原始资源的GITHUB: : ...
  • max30102.zip

    2020-04-27 01:15:45
    使用STM32单片机和MAX30102测量心率和血氧浓度的程序,该程序使用C语言所编写,包括串口调试功能,心率和血氧浓度都将通过串口调试助手显示出来
  • MAX30102芯片资料

    2018-01-24 11:44:12
    MAX30102是一个集成的脉搏血氧仪和心率监测仪生物传感器的模块。它集成了多个LED、光电检测器、光器件,以及带环境光抑制的低噪声电子电路。MAX30102提供完备的系统方案,使移动及可穿戴设备的设计过程变得轻松。
  • MAX30102 STM32 Ardunio例程

    2020-12-22 17:02:37
    MAX30102 STM32 Ardunio例程
  • max30102开发组件以及例程,非中文资料,谨慎下载,本人想知道有咩有max30102与51的例程
  • max30102测试程序

    2019-04-07 21:27:58
    max30102测试程序,Ardunio和STM32
  • MAX30102驱动程序

    2018-07-24 16:48:49
    MAX30102驱动程序,驱动程序,适合新手使用参考,注释非常详细!
  • MAX30102.zip

    2021-06-16 10:00:39
    基于STM32F103C8T6,MAX30102采集显示采用OLED,数据稳定,大量滤波算法
  • MAX30102资料.zip

    2020-12-08 13:48:09
    MAX30102是一个集成的脉搏血氧仪和心率监测仪生物传感器的模块。它集成了一个红.光LED和一个红外光LED、光电检测器、光器件,以及带环境光抑制的低噪声电子电路。MAX30102采用一个1.8V电源和一个独立的5.0V用于内部 ...
  • MAX30102体温测量

    2018-05-25 16:31:34
    利用STM32F407开发板对MAX30102体温模块的开发,可以接受整形数据,需要对IIC串口初始化,还有数据协议包的发送
  • MAX30102 STM32.zip

    2020-02-01 10:48:58
    MAX30102是一个集成的脉搏血氧仪和心率监测模块。它包括内部发光二极管,光电探测器,光学元件,以及低噪音的电子设备。MAX30102提供了一个完整的系统解决方案来简化移动和可穿戴设备的设计过程。 MAX30102运行在一...
  • MAX30102_by_RF 适用于MAX30102脉搏血氧饱和度传感器的Arduino C代码(MAXIM Integrated,Inc.) 该项目源自Maxim Integrated,Inc.在发布的公共领域参考设计MAXREFDES117#,包含MAX30102脉搏血氧饱和度传感器的...
  • MAX30102.rar

    2019-05-09 21:10:12
    基于stm32的心率监测系统,采用stm32f103 RCT6(正点原子)开发板与 MAX30102心率监测模块,实现对心率、血氧的实时监测以及的实时曲线绘制
  • max30102中文手册

    热门讨论 2018-01-11 20:22:42
    max30102心率血氧模块中文资料手册,主要部分已全部软件翻译出。
  • RT-Thread驱动MAX30102

    2021-01-13 00:10:24
    在本科阶段曾做过相关的项目,使用RTT系统驱动MAX30102采集心率血氧,亲测有用,数据处理算法网上很多,因此只提供驱动代码。
  • MAX30102-master.zip

    2020-06-19 09:39:31
    nrf52832驱动的max30102心血氧传感器,包含驱动程序和打印程序,还可以的吧,改改就能符合要求了。
  • MAX30102芯片资料跟历程

空空如也

空空如也

1 2 3 4 5 ... 17
收藏数 340
精华内容 136
关键字:

MAX30102