[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
[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
举报