综合技术
直播中

李天竹

7年用户 183经验值
私信 关注
[问答]

如何移植Arduino的max30100心率传感器模块函数?

我从网上找了Arduino的max30100模块的程序,想一直过来用STM32来做,结果卡在了millis函数这里,求助各位有过经验的大哥

回帖(49)

陈小鸥

2019-9-18 23:23:02
[C] 纯文本查看 复制代码
uint8_t MAX30102_WriteI2C(uint8_t REG_Address,uint8_t REG_data){    IIC_Start();    IIC_Send_Byte(0xAE); //·¢ËíÆ÷¼tμØÖ·+D′Ãüáî    if(IIC_Wait_Ack())          //μè′yó|′e    {        goto RESTATE;    }    IIC_Send_Byte(REG_Address);         //D′¼Ä′æÆ÷μØÖ·    if(IIC_Wait_Ack())          //μè′yó|′e    {        goto RESTATE;    }    IIC_Send_Byte(REG_data);        //·¢Ëíêy¾Y    if(IIC_Wait_Ack())          //μè′yACK    {        goto RESTATE;;    }    IIC_Stop();    return 1;RESTATE:    IIC_Stop();    return 0;}uint8_t MAX30102_ReadI2C(uint8_t REG_Address){    uint8_t res;    IIC_Start();    IIC_Send_Byte(0xAE); //·¢ËíÆ÷¼tμØÖ·+D′Ãüáî    if(IIC_Wait_Ack())          //μè′yó|′e    {        goto RESTATE;    }    IIC_Send_Byte(REG_Address);         //D′¼Ä′æÆ÷μØÖ·    if(IIC_Wait_Ack())          //μè′yó|′e    {        goto RESTATE;    }  IIC_Start();       IIC_Send_Byte(0xAF); //·¢ËíÆ÷¼tμØÖ·+¶á    if(IIC_Wait_Ack())          //μè′yó|′e    {        goto RESTATE;    }    res=IIC_Read_Byte(0);//¶áêy¾Y,·¢ËínACK      IIC_Stop();                 //2úéúò»¸öí£Ö1ìõ¼t    return res; RESTATE:    IIC_Stop();    return 0;}
代码读写程序,IIC时序可参看原子哥的模拟IIC
举报

张林锋

2019-9-18 23:40:45
帮顶
举报

刘璐

2019-9-18 23:50:31
millis函數是利用一個為1ms為基準的定時器,mcu
上電時會開始計算時間,寫個定時器就可以取代了
举报

安瑞娟

2019-9-19 00:05:28
我也正在弄这个,SpO2出不来....
举报

更多回帖

发帖
×
20
完善资料,
赚取积分