这篇教程C++ IIC_Start函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中IIC_Start函数的典型用法代码示例。如果您正苦于以下问题:C++ IIC_Start函数的具体用法?C++ IIC_Start怎么用?C++ IIC_Start使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了IIC_Start函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: IIC_Read_Bytesuint8_t IIC_Read_Bytes(uint8_t dev, uint8_t reg, uint8_t length, uint8_t *data){ uint8_t count = 0; uint8_t temp; IIC_Start(); IIC_Send_Byte(dev); IIC_Wait_Ack(); IIC_Send_Byte(reg); IIC_Wait_Ack(); IIC_Start(); IIC_Send_Byte(dev + 1); IIC_Wait_Ack(); for(count = 0; count < length; count++) { if(count != (length - 1) ) temp = IIC_Receive_Byte(1); else temp = IIC_Receive_Byte(0); data[count] = temp; } IIC_Stop(); return count;}
开发者ID:HopingTang,项目名称:four_rotor_aircraft,代码行数:26,
示例2: IIC1_MultReadu8 IIC1_MultRead(u8 slaveAddr, u8* pBuffer, u8 readAddr, u16 NumByteToRead){ IIC_Start(); //起始信号 IIC_Send_Byte(slaveAddr); //发送写器件指令 if(FALSE==IIC_Wait_Ack()) { IIC_Stop(); //发送停止信号 return 1; } IIC_Send_Byte(readAddr); //发送寄存器地址 IIC_Wait_Ack(); IIC_Start(); //重新启动 IIC_Send_Byte(slaveAddr+1); //发送读器件指令 IIC_Wait_Ack(); /* While there is data to be read */ while(NumByteToRead) { if(NumByteToRead == 1) { *pBuffer=IIC_Read_Byte(0); //读出寄存器数据不继续再读,发送NACK } else { *pBuffer=IIC_Read_Byte(1); //读出寄存器数据继续读,发送ACK pBuffer++; /* Point to the next location where the byte read will be saved */ } /* Decrement the read bytes counter */ NumByteToRead--; } IIC_Stop(); //停止信号 return 0;}
开发者ID:dammstanger,项目名称:FCU_UCOSII150617,代码行数:31,
示例3: IIC_Single_Read/****************************************************************************** 函数(模块)名称:unsigned char IIC_Single_Read(unsigned int R_addr,unsigned char *R_word) 功能: 单次读/随机读 输入参数: 要读的数据地址,输出数据保存的字节指针 输出参数: 1 读成功 0 读失败 其它说明: *******************************************************************************/unsigned char IIC_Single_Read(unsigned char R_addr,unsigned char *R_word){ unsigned char try_time=define_try_time; //用来定义出现通讯错误时尝试的错误 while(1) { if(!try_time--) //用来防止因硬件错误或其它原因程序进入死循环 { return 0; } IIC_Start(); //步骤1:产生一个启动信号 IIC_Send_Byte(Slave_Addres&(~BIT0)); //步骤2:发送控制命令 if(ReadAck()) continue; //没有应答,忽略下面语句,重新开始 //应答,则开始发送地址 IIC_Send_Byte(R_addr); if(ReadAck()) continue; //没有应答,忽略下面语句,重新开始 //应答,则开始发送启动信号 IIC_Start(); //启动信号 IIC_Send_Byte(Slave_Addres|BIT0); //发送控制命令 if(ReadAck()) continue; //没有应答,忽略下面语句,重新开始 break; //应答,则跳出循环,开始接收数据 } *R_word=IIC_Receive_Byte(); //从总线上接收一个字节数据 WriteAck(1); //发送 非应答信号 IIC_Stop(); //发送停止信号 return 1;}
开发者ID:380121850,项目名称:MicroFlashFTLV2,代码行数:36,
示例4: i2cRead/**************************实现函数*********************************************函数原型: bool i2cWrite(uint8_t addr, uint8_t reg, uint8_t data)*功 能: *******************************************************************************/int i2cRead(uint8_t addr, uint8_t reg, uint8_t len, uint8_t *buf){ if (!IIC_Start()) return 1; IIC_Send_Byte(addr << 1); if (!IIC_Wait_Ack()) { IIC_Stop(); return 1; } IIC_Send_Byte(reg); IIC_Wait_Ack(); IIC_Start(); IIC_Send_Byte((addr << 1)+1); IIC_Wait_Ack(); while (len) { if (len == 1) *buf = IIC_Read_Byte(0); else *buf = IIC_Read_Byte(1); buf++; len--; } IIC_Stop(); return 0;}
开发者ID:cuihee,项目名称:PingHengXiaoChe,代码行数:29,
示例5: Single_Read_IICu8 Single_Read_IIC(u8 SlaveAddress, u8 REG_Address){ u8 REG_data; IIC_Start(); IIC_SendByte(SlaveAddress); IIC_SendByte(REG_Address); IIC_Start(); IIC_SendByte(SlaveAddress+1); REG_data = IIC_RecvByte(); IIC_SendACK(); IIC_Stop(); return REG_data; }
开发者ID:edisonlee102,项目名称:Balance_Robat,代码行数:13,
示例6: I2C_ReadByte/********单字节读取*****************************************/uint8_t I2C_ReadByte(uint8_t SlaveAddress, uint8_t REG_Address){ char REG_data; IIC_Start(); //起始信号 IIC_SendByte(SlaveAddress); //发送设备地址+写信号 IIC_SendByte(REG_Address); //发送存储单元地址,//从0开始 IIC_Start(); //起始信号 IIC_SendByte(SlaveAddress+1); //发送设备地址+读信号 REG_data = IIC_RecvByte(); //读出寄存器数据 IIC_SendNACK(); IIC_Stop(); //停止信号 return REG_data; }
开发者ID:eastmoutain,项目名称:HummingBird,代码行数:14,
示例7: IIC1_ReadByteu8 IIC1_ReadByte(u8 slaveAddr, u8 readAddr){ u8 REG_data; IIC_Start(); //起始信号 IIC_Send_Byte(slaveAddr); //发送设备地址+写信号 IIC_Wait_Ack(); IIC_Send_Byte(readAddr); //发送存储单元地址,从0开始 IIC_Wait_Ack(); //必须要有 IIC_Start(); //起始信号 IIC_Send_Byte(slaveAddr+1); //发送设备地址+读信号 IIC_Wait_Ack(); REG_data=IIC_Read_Byte(0); //读出寄存器数据不继续再读,发送NACK return REG_data; }
开发者ID:dammstanger,项目名称:FCU_UCOSII150617,代码行数:14,
示例8: MPU6050_ReadByte/***********************************函数名:u8 MPU6050_ReadByte(u8 reg)说明:MPU6050单次读字节入口:u8 reg 寄存器地址出口:u8 读取到的字节备注:无************************************/u8 MPU6050_ReadByte(u8 reg){ u8 tmp; IIC_Start(); IIC_Send_Byte(MPU6050_DEVICE); // 发送器件地址+写信号 IIC_Send_Byte(reg); // 需要读取的寄存器地址 IIC_Start(); IIC_Send_Byte(MPU6050_DEVICE + 1); // 发送器件地址+读信号 tmp = IIC_Read_Byte(0); // 读取数据不产生应答 IIC_Stop(); return tmp;}
开发者ID:huaqianlee,项目名称:Micro-Quadrotor,代码行数:21,
示例9: MPU_Read_Byte//IIC读一个字节 //reg:寄存器地址 //返回值:读到的数据uint8_t MPU_Read_Byte(uint8_t reg){ uint8_t res; IIC_Start(); IIC_Send_Byte((MPU_ADDR<<1)|0);//发送器件地址+写命令 IIC_Wait_Ack(); //等待应答 IIC_Send_Byte(reg); //写寄存器地址 IIC_Wait_Ack(); //等待应答 IIC_Start(); IIC_Send_Byte((MPU_ADDR<<1)|1);//发送器件地址+读命令 IIC_Wait_Ack(); //等待应答 res=IIC_Read_Byte(0);//读取数据,发送nACK IIC_Stop(); //产生一个停止条件 return res; }
开发者ID:ageofflight,项目名称:2015NUEDC,代码行数:18,
示例10: ADXL345_RD_Reg//读ADXL345寄存器//addr:寄存器地址//返回值:读到的值u8 ADXL345_RD_Reg(u8 addr) { u8 temp=0; IIC_Start(); IIC_Send_Byte(ADXL_WRITE); //发送写器件指令 temp=IIC_Wait_Ack(); IIC_Send_Byte(addr); //发送寄存器地址 temp=IIC_Wait_Ack(); IIC_Start(); //重新启动 IIC_Send_Byte(ADXL_READ); //发送读器件指令 temp=IIC_Wait_Ack(); temp=IIC_Read_Byte(0); //读取一个字节,不继续再读,发送NAK IIC_Stop(); //产生一个停止条件 return temp; //返回读到的值}
开发者ID:alloevil,项目名称:A-embedded-image-processing-platform--,代码行数:18,
示例11: WM8960_WriteDatavoid WM8960_WriteData(Uint8 channel, Uint8 Register, Uint16 Data){ Uint8 HightByte,LowByte; Uint8 I2C_Status; HightByte = Data >> 8; HightByte = HightByte & 0x01; HightByte |= (Register << 1); LowByte = Data; //bit 7 - 0 IIC_Start(channel); IIC_Delay(); if(!(IIC_WriteByte(channel,WM8960_Write_ADD))) { I2C_Status = IIC_WriteByte(channel,HightByte); I2C_Status = IIC_WriteByte(channel,LowByte); IIC_Delay(); IIC_Stop(channel);#if DebugVerbosity > 1 if(I2C_Status == 0) { UART_TxStr("Channel = "); UART_TxUint8(channel); UART_TxStr("Register = "); UART_TxUint8(Register); UART_TxStr(" Value = "); UART_TxUint8(Data>>8); UART_TxUint8(LowByte); UART_TxStr("/n/r"); }
开发者ID:marklin2100,项目名称:Projects,代码行数:31,
示例12: MPU_Write_Byte//IIC写一个字节 //reg:寄存器地址//data:数据//返回值:0,正常// 其他,错误代码u8 MPU_Write_Byte(u8 reg,u8 data) { IIC_Start(); IIC_Send_Byte((MPU_ADDR<<1)|0);//发送器件地址+写命令 if(IIC_Wait_Ack()) //等待应答 { printf("in MPU_Write_Byte: failed at 1,reg=%X,data=%X/n",reg,data); IIC_Stop(); return 1; } IIC_Send_Byte(reg); //写寄存器地址 if(IIC_Wait_Ack()){ printf("in MPU_Write_Byte: failed at 2,reg=%X,data=%X/n",reg,data); IIC_Stop(); return 1; } //等待应答 IIC_Send_Byte(data);//发送数据 if(IIC_Wait_Ack()) //等待ACK { printf("in MPU_Write_Byte: failed at 3,reg=%X,data=%X/n",reg,data); IIC_Stop(); return 1; } IIC_Stop(); return 0;}
开发者ID:Hadron67,项目名称:Quadrotor_stm32,代码行数:31,
示例13: SetUpADS1110void SetUpADS1110(unsigned char x){ IIC_Start(); IIC_Send_Byte(ADS1110_ADDR & 0xFE); IIC_Send_Byte(x); IIC_Stop();}
开发者ID:changleo828,项目名称:BOSSEN_YIBIAO_4_20mA,代码行数:7,
示例14: IIC_Page_Write/****************************************************************************** 函数(模块)名称:unsigned char IIC_Page_Write(unsigned char W_addr, unsigned char *WriteData_Addr, unsigned char WriteData_Cnt) 功能: IIC页写 输入参数: 要写的地址,要写的数据指针,要写的字节数 输出参数: 1 写成功 0 写失败 其它说明: 要写的字节数,不能大于当前写字节地址到当前页最大地址之差。*******************************************************************************/unsigned char IIC_Page_Write(unsigned char W_addr,unsigned char *WriteData_Addr, unsigned char WriteData_Cnt){ unsigned char try_time=define_try_time; //用来定义出现通讯错误时尝试的错误 while(1) { if(!try_time--) //用来防止因硬件错误或其它原因程序进入死循环 { return 0; } IIC_Start(); //步骤1:主机产生一个启动信号 IIC_Send_Byte(Slave_Addres&(~BIT0)); //步骤2:主机发送从机地址及读写位 if(ReadAck()) continue; //步骤3:主机接收从机应答;没有应答,忽略下面语句,重新开始 //应答,则开始发送地址 IIC_Send_Byte(W_addr); //步骤4:主机发送读写地址 if(ReadAck()) continue; //步骤5:主机接收从机应答 没有应答,忽略下面语句,重新开始 while(WriteData_Cnt--) { IIC_Send_Byte(*(WriteData_Addr++)); if(!ReadAck()) continue; //收到应答(0),则继续发送数据 return 0; //没收到应答,错误返回 } break; } IIC_Stop(); //步骤8:主机发送停止信号,启动写周期 Delay(5000); //需要延时一段时间,等待写周期完成 return 1;}
开发者ID:380121850,项目名称:MicroFlashFTLV2,代码行数:40,
示例15: IIC_Single_Write/****************************************************************************** 函数(模块)名称:unsigned char IIC_Single_Write(unsigned char W_addr,unsigned char Date_byte) 功能: IIC总线单字节写 输入参数: 要写的地址,要写的数据 输出参数: 1 写成功 0 写失败 其它说明: *******************************************************************************/unsigned char IIC_Single_Write(unsigned char W_addr,unsigned char Date_byte){ unsigned char try_time=define_try_time; //用来定义出现通讯错误时尝试的错误 while(1) { if(!try_time--) //用来防止因硬件错误或其它原因程序进入死循环 { return 0; } IIC_Start(); //步骤1:主机产生一个启动信号 IIC_Send_Byte(Slave_Addres&(~BIT0)); //步骤2:主机发送从机地址及读写位 if(ReadAck()) continue; //步骤3:主机接收从机应答;没有应答,忽略下面语句,重新开始 //应答,则开始发送地址 IIC_Send_Byte(W_addr); //步骤4:主机发送读写地址 if(ReadAck()) continue; //步骤5:主机接收从机应答 没有应答,忽略下面语句,重新开始 IIC_Send_Byte(Date_byte); //步骤6:主机发送数据 //应答,则开始发送要写入的数据 if(ReadAck()) //步骤7:机接收从机应答 continue; //没有应答,忽略下面语句,重新开始 break; //应答,则跳出循环 } IIC_Stop(); //步骤8:主机发送停止信号,启动写周期 Delay(5000); //需要延时一段时间,等待写周期完成 return 1;}
开发者ID:380121850,项目名称:MicroFlashFTLV2,代码行数:33,
示例16: IIC_WriteData//写数据,成功返回0,失败返回0xffint IIC_WriteData(u8 dev_addr,u8 reg_addr,u8 data){ IIC_Start(); IIC_WriteBit(dev_addr); if(IIC_WaitAck() == 0xff) { printf("error 2B/r/n"); return 0xff; } IIC_WriteBit(reg_addr); if(IIC_WaitAck() == 0xff) { printf("error 2C/r/n"); return 0xff; } IIC_WriteBit(data); if(IIC_WaitAck() == 0xff) { printf("error 2D/r/n"); return 0xff; } IIC_Stop(); return 0;}
开发者ID:tete1030,项目名称:RM_Gimbal,代码行数:29,
示例17: IIC_ReadByte/*********************************************************************************函 数: IIC_ReadByte**功 能: IIC读指定地址字节数据**参 数: Addr --地址 **返 回: 接收的数据*******************************************************************************/u8 IIC_ReadByte(u8 Addr) { u8 data; IIC_Start(); IIC_SendByte(DEVICE_ADDR); IIC_WaitAck(); IIC_SendByte(Addr); IIC_WaitAck(); IIC_Start(); IIC_SendByte(DEVICE_ADDR+1); //ReadDeviceAddr IIC_WaitAck(); data=IIC_GetByte(); IIC_NACK(); IIC_Stop(); return data; }
开发者ID:feixingzhe9,项目名称:bestfu-dev-cube,代码行数:22,
示例18: mainvoid main(void) { int i=0; EnableInterrupts; /* enable interrupts */ /* include your code here */ InitClock(); IIC1_Init(); configIIC(); /* IIC_Start(); IIC_write_byte(0x3D); IIC_write_byte(0x03); IIC_Stop(); */ //iic1=IIC_read_byte(); for(;;) { IIC_Start(); IIC_write_byte(0x3C); IIC_write_byte(0x03); IIC_Stop(FALSE); IIC_write_byte(0x3D); while(i<6){ iic1=IIC_read_byte(); i++; } i=0; IIC_Stop(FALSE); //__RESET_WATCHDOG(); /* feeds the dog */ } /* loop forever */ /* please make sure that you never leave main */}
开发者ID:pmartinizq,项目名称:ProyectoFinal,代码行数:31,
示例19: IIC1_MultWriteu8 IIC1_MultWrite(u8 slaveAddr, u8* pBuffer, u8 wrtieAddr, u16 NumByteToWrite){ IIC_Start(); //起始信号 IIC_Send_Byte(slaveAddr); //发送设备地址+写信号 if(FALSE==IIC_Wait_Ack()) { IIC_Stop(); //发送停止信号 return 1; } IIC_Send_Byte(wrtieAddr); //内部寄存器地址 IIC_Wait_Ack(); while(NumByteToWrite) { IIC_Send_Byte(*pBuffer); //内部寄存器数据 if(FALSE==IIC_Wait_Ack()) { IIC_Stop(); //发送停止信号 return 1; } pBuffer++; NumByteToWrite--; } IIC_Stop(); //发送停止信号 return 0;}
开发者ID:dammstanger,项目名称:FCU_UCOSII150617,代码行数:26,
示例20: Single_Write_IICvoid Single_Write_IIC(u8 SlaveAddress,u8 REG_Address,u8 REG_data){ IIC_Start(); IIC_SendByte(SlaveAddress); IIC_SendByte(REG_Address); IIC_SendByte(REG_data); IIC_Stop(); }
开发者ID:edisonlee102,项目名称:Balance_Robat,代码行数:8,
示例21: I2C_WriteByte/****** busrt one byte via I2C *****/void I2C_WriteByte(uint8_t SlaveAddress,uint8_t REG_Address,uint8_t REG_data){ IIC_Start(); //起始信号 IIC_SendByte(SlaveAddress); //发送设备地址+写信号 IIC_SendByte(REG_Address); //内部寄存器地址, //请参考中文pdf22页 IIC_SendByte(REG_data); //内部寄存器数据, //请参考中文pdf22页 IIC_Stop(); //发送停止信号}
开发者ID:eastmoutain,项目名称:HummingBird,代码行数:9,
示例22: OLED_WrCmdvoid OLED_WrCmd(unsigned char IIC_Command){ IIC_Start(); Write_IIC_Byte(0x78); //Slave address,SA0=0 Write_IIC_Byte(0x00); //write command Write_IIC_Byte(IIC_Command); IIC_Stop();}
开发者ID:shenzihao6,项目名称:myqudx,代码行数:8,
示例23: OLED_WrDatvoid OLED_WrDat(unsigned char IIC_Data){ IIC_Start(); Write_IIC_Byte(0x78); Write_IIC_Byte(0x40); //write data Write_IIC_Byte(IIC_Data); IIC_Stop();}
开发者ID:shenzihao6,项目名称:myqudx,代码行数:8,
示例24: MPU6050_WirteByte/***********************************************函数名:void MPU6050_WirteByte(u8 reg, u8 data)说明:MPU6050单次写字节入口:u8 reg 寄存器地址 u8 data 需要写入的字节出口:无备注:无***********************************************/void MPU6050_WirteByte(u8 reg, u8 data){ IIC_Start(); IIC_Send_Byte(MPU6050_DEVICE); // 发送器件地址+写信号 IIC_Send_Byte(reg); // 寄存器地址 IIC_Send_Byte(data); // 需要写入的数据 IIC_Stop();}
开发者ID:huaqianlee,项目名称:Micro-Quadrotor,代码行数:16,
示例25: configIICvoid configIIC(void){ IIC_Start(); IIC_write_byte(0x3C); IIC_write_byte(0x02); IIC_write_byte(0x00); IIC_Stop(TRUE); }
开发者ID:pmartinizq,项目名称:ProyectoFinal,代码行数:8,
示例26: HAL_I2C_Startvoid HAL_I2C_Start(void){#ifdef USE_I2C_OLD I2C_Start();#else IIC_Start();#endif}
开发者ID:reynoldxu,项目名称:DWM,代码行数:8,
示例27: IIC_ReadRegalt_8 IIC_ReadReg(alt_u8 waddr, alt_u8 raddr, alt_u8 reg, alt_u8 *data){ IIC_Start(); IIC_PutByte(waddr); IIC_NAKRTN; IIC_PutByte(reg); IIC_NAKRTN; IIC_PutByte(0xff); IIC_NAKRTN; IIC_Start(); IIC_PutByte(raddr); IIC_NAKRTN; *data = IIC_GetByte(); IIC_Acknowledge(0); IIC_Stop(); return 1;}
开发者ID:Summerslyb,项目名称:Simple-User-Interface,代码行数:17,
示例28: Write_IIC_Data/**********************************************// IIC Write Data**********************************************/void Write_IIC_Data(unsigned char IIC_Data){ IIC_Start(); Write_IIC_Byte(0x78); //D/C#=0; R/W#=0 Write_IIC_Byte(0x40); //write data Write_IIC_Byte(IIC_Data); IIC_Stop();}
开发者ID:charliexp,项目名称:FireBLE,代码行数:11,
示例29: IIC_Start//IIC写命令 -- 命令操作很少,对速度影响不大void CN_SSD1306::Write_IIC_Command(unsigned char IIC_Command){ IIC_Start(); Write_IIC_Byte(0x78); //Slave address,SA0=0 Write_IIC_Byte(0x00); //write command Write_IIC_Byte(IIC_Command); IIC_Stop();}
开发者ID:AlcaldeWetPlate,项目名称:Arduino-Dormitory-Assistant,代码行数:9,
示例30: IIC_Read_One_Byteu8 IIC_Read_One_Byte(u8 daddr,u8 addr){ u8 temp; IIC_Start(); IIC_Send_Byte(daddr);//器件地址+写信号 IIC_Wait_Ack(); IIC_Send_Byte(addr);//寄存器 IIC_Wait_Ack(); IIC_Start(); IIC_Send_Byte(daddr+1);//器件地址+读信号 IIC_Wait_Ack(); temp = IIC_Read_Byte(0); IIC_Stop(); return temp;}
开发者ID:zhengchangsi,项目名称:RuiSa,代码行数:18,
注:本文中的IIC_Start函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ IIC_Stop函数代码示例 C++ II函数代码示例 |