您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ I2C_delay函数代码示例

51自学网 2021-06-01 21:27:05
  C++
这篇教程C++ I2C_delay函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中I2C_delay函数的典型用法代码示例。如果您正苦于以下问题:C++ I2C_delay函数的具体用法?C++ I2C_delay怎么用?C++ I2C_delay使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了I2C_delay函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: lib_i2c_write

/************************************************************************* Send one byte to I2C device  Input:    byte to be transfered Return:   0 write successful            1 write failed*************************************************************************/unsigned char lib_i2c_write(unsigned char data){    int i = 8;    // transmit byte    while (i--) {        SCL_L;        I2C_delay();        if (data & 0x80)            SDA_H;        else            SDA_L;        data <<= 1;        I2C_delay();        SCL_H;        I2C_delay();    }    SCL_L;    if (lib_i2c_waitack()) {        lib_i2c_stop();        return 1;    }    return 0;}
开发者ID:Mattnez,项目名称:bradwii-X4,代码行数:32,


示例2: I2C_gen_start

uint8_t I2C_gen_start(void) {	// Release SCL	I2C_PORT |= (1<<I2C_SCL);	while(!(I2C_PORT & (1<<I2C_SCL))) ;	#ifdef I2C_FAST_MODE	I2C_delay(I2C_T2);	#else	I2C_delay(I2C_T1);	#endif	// Generate start condition	I2C_PORT &= ~(1<<I2C_SDA);	I2C_delay(I2C_T2);	I2C_PORT &= ~(1<<I2C_SCL);	I2C_PORT |=  (1<<I2C_SDA);	#ifdef SIGNAL_VERIFY	// Check that the start condition was detected	if (!(USISR & (1<<USISIF))) {		I2C_state.errorState = I2C_ERR_MISSING_START_CON;		return FALSE;	}	#endif	return TRUE;}
开发者ID:Luden,项目名称:main,代码行数:25,


示例3: I2C_Start

BUS_Status I2C_Start(void){    //before: SCL=H SDA=H,means bus is free	SDA_H;			//1	SCL_H;			//2    I2C_delay();	//3		if(!(SDA_read))	{        ERROR_MACRO(IIC_DEV,I2C_Start_ERROR_BUS_BUSY);		return BUS_BUSY;	}	SDA_L;			//4	I2C_delay();	//5//	SDA_L;			//6//	I2C_delay();	//7		if(SDA_read)	{        ERROR_MACRO(IIC_DEV,I2C_Start_ERROR_BUS_ERROR);		return BUS_ERROR;	}    SCL_L;    //After: SCL=L SDA=L		return BUS_READY;}
开发者ID:reynoldxu,项目名称:DWM,代码行数:32,


示例4: I2C_Wr

//////////////////////////////////////////////////////////////////////// Returns 0 for no errors = the ACK bit from the slaveunsigned short I2C_Wr(unsigned short data) {  unsigned short ret=0,i;   // grab the data   for(i = 0; i < 8; i++) {         I2C_SCL_0; // Clock low      if (data & 0x80) I2C_SDA_1; else I2C_SDA_0; // Data output      data <<= 1;   // Next data bit.      I2C_delay();  // low T/2.            I2C_SCL_1;    // Clock released to high.      I2C_delay();  // high T/2.   }   // get ACK or NACK   I2C_SCL_0;   I2C_SDA_1;    // Release the  data line   SET_PIN_INPUT(I2C_SDA_PIN);   I2C_delay();  // low T/2.      I2C_SCL_1;   // Sample the ACK   ret = I2C_SDA_IN;   I2C_delay();  // high T/2.      I2C_SCL_0;    // Return clock to safe state   SET_PIN_OUTPUT(I2C_SDA_PIN);   return ret;}
开发者ID:BackupTheBerlios,项目名称:uwsdr-svn,代码行数:33,


示例5: I2C_WaitAck

BUS_ACK_Status I2C_WaitAck(void){    //等待ACK应该是在发送完数据之后,所以之前:    //    SCL=H  SDA=DATA    unsigned char ucErrTime=0;	    //SDA_H;SDA_H;SDA_H;I2C_delay();           //初始化数据是NACK,不能拉低!    SCL_L;          //假设你是从机->SCL=L时更新数据,SDA=H时数据是保持的    I2C_delay();    //保持一下    //while(1);    SCL_H;          //此时拉高SCL,于是从机的数据应该是保持的    I2C_delay();    //等待数据就位    while(SDA_read)//读到H->NACK,适当等待	{		ucErrTime++;        if(ucErrTime>=50)//一小段时间后还是NACK->是NACK        {            //ERROR_MACRO(IIC_DEV,I2C_ERROR_BUS_NACK);            printf("NoACK/r/n");            //此时SCL=H SDA =H,直接STOP            I2C_Stop();            return BUS_NACK;        }	}    SCL_L;      //拉低SCL,保持总线BUSY    SDA_H;      //更具I2C协议P10SDA应该在SCL变为L之后拉高    I2C_delay();    //SCL=L SDA=ACK/NACK    return BUS_ACK;}
开发者ID:reynoldxu,项目名称:DWM,代码行数:34,


示例6: I2C_ReceiveByte

unsigned char I2C_ReceiveByte(void)  //数据从高位到低位//{     unsigned char i=8;    unsigned char ReceiveByte=0x00;    while(i--)    {      ReceiveByte<<=1;            SCL_L;I2C_delay();      SCL_H;//给出一个上升沿,使设备输出SDA数据      I2C_delay();//保证数据从设备中输出了      if(SDA_read)      {        ReceiveByte|=0x01;      }      I2C_delay();    }    SCL_L;    //SDA_L;    //I2/C_delay();I2C_delay();I2C_delay();I2C_delay();    //I2C_delay();I2C_delay();I2C_delay();I2C_delay();    return ReceiveByte;}
开发者ID:reynoldxu,项目名称:DWM,代码行数:25,


示例7: I2C_byte_xfer

// Run the shift register until the counter overflows// Function resets SDA line to output on returnuint8_t I2C_byte_xfer(uint8_t reg) {	// Preset counter	USISR = reg;	// Setup control register for clock strobe	reg = (1<<USIWM1) | (1<<USICS1) | (1<<USICLK) | (1<<USITC);	do {		I2C_delay(I2C_T1);		// Positive edge		USICR = reg;		// Wait for clock stretching		while (!(I2C_PIN & (1<<I2C_SCL))) ;		I2C_delay(I2C_T2);		// Negative edge		USICR = reg;	} while (!(USISR & (1<<USIOIF)));	I2C_delay(I2C_T1);	// Save shift register	reg = USIDR;	// Release SDA	USIDR = 0xFF;	// Set SDA as output	I2C_DDR |= (1<<I2C_SDA);	return reg;}
开发者ID:Luden,项目名称:main,代码行数:29,


示例8: IIC_NAck

//不产生ACK应答		    static void IIC_NAck(void){	SDA_OUT();	IIC_SDA(1);	IIC_SCL(1);    I2C_delay();	IIC_SCL(0);	I2C_delay();}					 	
开发者ID:dammstanger,项目名称:FCU_UCOSII150617,代码行数:10,


示例9: IIC_Stop

//产生IIC停止信号static void IIC_Stop(void){	SDA_OUT();//sda线输出	IIC_SDA(0);//STOP:when CLK is high DATA change form low to high	IIC_SCL(1); 	I2C_delay();	IIC_SDA(1);//发送I2C总线结束信号	I2C_delay();}
开发者ID:dammstanger,项目名称:FCU_UCOSII150617,代码行数:10,


示例10: I2C_Stop

/******************************************************************************** Function Name  : I2C_Stop* Description    : None* Input          : None* Output         : None* Return         : None* Attention		 : None*******************************************************************************/static void I2C_Stop(void){	SDA_L;	I2C_delay();	SCL_H;	I2C_delay();	SDA_H;	I2C_delay();}
开发者ID:12019,项目名称:stm32-camera,代码行数:17,


示例11: lib_i2c_stop

/*************************************************************************Terminates the data transfer and releases the I2C bus*************************************************************************/void lib_i2c_stop(void){    SCL_L;    I2C_delay();    SDA_L;    I2C_delay();    SCL_H;    I2C_delay();    SDA_H;    I2C_delay();}
开发者ID:Mattnez,项目名称:bradwii-X4,代码行数:14,


示例12: I2C_Stop

/***************************************	I2Cstop:keep SCL high, SDA low to high*           ________________*	SCL:*                    ______*	SDA:      ________/*	函数返回时:SDA,SCL均为高电平***************************************/void I2C_Stop(void){	SCL_L;	I2C_delay();		SDA_L;	I2C_delay();	SCL_H;	I2C_delay();	SDA_H;}
开发者ID:MaxStudio,项目名称:GPS_TRACER_CODE,代码行数:19,


示例13: I2C_ACK

void I2C_ACK(){  SCL_L;  I2C_delay();  SDA_L;  I2C_delay();  SCL_H;  I2C_delay();  SCL_L;  I2C_delay();}
开发者ID:bsmr-multicopter,项目名称:mbtx,代码行数:11,


示例14: I2C_STOP

void I2C_STOP(){  SCL_L;  I2C_delay();  SDA_L;  I2C_delay();  SCL_H;  I2C_delay();  SDA_H;  I2C_delay();}
开发者ID:bsmr-multicopter,项目名称:mbtx,代码行数:11,


示例15: i2c_read_bit

unsigned char i2c_read_bit(void) {	unsigned char bit;	read_SDA();	I2C_delay();	while (read_SCL() == 0); // Clock stretching	bit = read_SDA();	I2C_delay();	clear_SCL();	I2C_delay();	return bit;}
开发者ID:JorgeGzm,项目名称:JAGA,代码行数:11,


示例16: I2C_NoAck

/******************************************************************************** Function Name  : I2C_NoAck* Description    : Master Send No Acknowledge Single* Input          : None* Output         : None* Return         : None****************************************************************************** */void I2C_NoAck(void){		SCL_L;	I2C_delay();	SDA_H;	I2C_delay();	SCL_H;	I2C_delay();	SCL_L;	I2C_delay();} 
开发者ID:Niugge,项目名称:2016.01.20,代码行数:18,


示例17: I2C_Start

/* *========================================================= * 函数功能:IIC总线初始化信号 * 参数:无 * 函数返回值:无  * SDA    --- *           |________ * SCL ---------- *               |____   *=========================================================    */void I2C_Start(void){	SCL_L;						I2C_delay();	SDA_H;	I2C_delay();	SCL_H;	I2C_delay();	SDA_L;	I2C_delay();  } 
开发者ID:JokerGeek,项目名称:Raging_Fire_Quad-rotor,代码行数:22,


示例18: I2C_Ack

/******************************************************************************** Function Name  : I2C_Ack* Description    : None* Input          : None* Output         : None* Return         : None* Attention		 : None*******************************************************************************/static void I2C_Ack(void){		SCL_L;	I2C_delay();	SDA_L;	I2C_delay();	SCL_H;	I2C_delay();	SCL_L;	I2C_delay();}
开发者ID:12019,项目名称:stm32-camera,代码行数:19,


示例19: IIC_Start

//产生IIC起始信号static bool IIC_Start(void){	SDA_OUT();     //sda线输出	IIC_SDA(1);	  	  	IIC_SCL(1);	I2C_delay(); 	IIC_SDA(0);//START:when CLK is high,DATA change form high to low 	I2C_delay();	IIC_SCL(0);//钳住I2C总线,准备发送或接收数据 	return TRUE ;}	  
开发者ID:dammstanger,项目名称:FCU_UCOSII150617,代码行数:12,


示例20: i2c_stop

void i2c_stop(void) {	// set SDA to 0	clear_SDA();	I2C_delay();	while (read_SCL() == 0); // Clock stretching	I2C_delay();	if (read_SDA() == 0) {		arbitration_lost();	}	I2C_delay();	started = 0;}
开发者ID:JorgeGzm,项目名称:JAGA,代码行数:12,


示例21: I2C_Start

/******************************************************************************** Function Name  : I2C_Start* Description    : None* Input          : None* Output         : None* Return         : None* Attention		 : None*******************************************************************************/static int I2C_Start(void){	SDA_H;	I2C_delay();	SCL_H; 	I2C_delay();	SDA_L;	I2C_delay();     SCL_L;	I2C_delay(); 	return ENABLE;}
开发者ID:12019,项目名称:stm32-camera,代码行数:20,


示例22: I2C_Stop

//////////////////////////////////////////////////////////////////////// Stop command//// SDA 0-0-1// SCL 0-1-1//void I2C_Stop(void) {   I2C_SCL_0;   // Force to zero as can be sent at any time.   I2C_SDA_0;   // Clock 1st so do not make a command.   I2C_delay();   I2C_SCL_1;   I2C_delay();   I2C_SDA_1;   I2C_delay();}
开发者ID:BackupTheBerlios,项目名称:uwsdr-svn,代码行数:18,


示例23: I2C_Start

//////////////////////////////////////////////////////////////////////// Start command//// SDA 1-0-0// SCL 1-1-0//// Asumptions : coming from bus free state (d=1,ck=1)void I2C_Start(void) {   I2C_SDA_1;   I2C_SCL_1;   I2C_delay();      I2C_SDA_0;   I2C_delay();   I2C_SCL_0;   I2C_delay();}
开发者ID:BackupTheBerlios,项目名称:uwsdr-svn,代码行数:19,


示例24: I2C_Start

/******************************************************************************** Function Name  : I2C_Start* Description    : Master Start Simulation IIC Communication* Input          : None* Output         : None* Return         : Wheather	 Start****************************************************************************** */uint8_t I2C_Start(void){	SDA_H;	SCL_H;	I2C_delay();	if(!SDA_read)return 0;	//SDA线为低电平则总线忙,退出	SDA_L;	I2C_delay();	if(SDA_read) return 0;	//SDA线为高电平则总线出错,退出	SDA_L;	I2C_delay();	return 1;}
开发者ID:Niugge,项目名称:2016.01.20,代码行数:20,


示例25: I2C_NAck

void I2C_NAck(void){    SCL_L;			//1 首先拉低SCL,开始准备数据    SDA_H;			//2 在SCL为低电平是准备数据(ACK=1)    I2C_delay();	//3 保持一下	    SCL_H;			//4 SCL拉高,进行采样    I2C_delay();	//5 保持SCL=1的时间->Note:确保采样时间    SCL_L;          //复位SCL->L完成一个clock    //结束时,SCL=L SDA=NACK}
开发者ID:reynoldxu,项目名称:DWM,代码行数:13,


示例26: I2C_Start

/******************************************************************************** Function Name  : I2C_Start* Description    : Master Start Simulation IIC Communication* Input          : None* Output         : None* Return         : Wheather	 Start****************************************************************************** */uint16_t I2C_Start(void){	SDA_H;	SCL_H;	I2C_delay();	if(!SDA_read)return FALSE;	//SDA线为低电平则总线忙,退出	SDA_L;	I2C_delay();	if(SDA_read) return FALSE;	//SDA线为高电平则总线出错,退出	SDA_L;	I2C_delay();	return TRUE;}
开发者ID:sqrgj,项目名称:All-In-One-Chassis,代码行数:20,


示例27: I2C_Start

/***************************************	I2Cstart: keep SCL high, SDA high to low*           ___________*	SCL:                 /_____*           ______*	SDA:            /__________*	函数返回时:SDA,SCL均为低电平***************************************/uint8_t I2C_Start(void){	SDA_H;	SCL_H;	I2C_delay();	if(!SDA_READ)return FALSE;  	SDA_L;	I2C_delay();	if(SDA_READ)return FALSE;  	SCL_L;	return TRUE;}
开发者ID:MaxStudio,项目名称:GPS_TRACER_CODE,代码行数:21,


示例28: I2C_Release

void I2C_Release(void){	uint8_t i =9;		while(i--)	{		SCL_H;		I2C_delay();						SCL_L;		I2C_delay();	}	I2C_Stop();}
开发者ID:MaxStudio,项目名称:GPS_TRACER_CODE,代码行数:13,


示例29: i2c_read_bit

// Read a bit from I2C busbool i2c_read_bit(void) {  bool bit;  // Let the slave drive data  read_SDA();  I2C_delay();  while (read_SCL() == 0) { // Clock stretching    // You should add timeout to this loop  }  // SCL is high, now data is valid  bit = read_SDA();  I2C_delay();  clear_SCL();  return bit;}
开发者ID:Archmere-Robotics,项目名称:libI2C,代码行数:15,


示例30: IIC_Send_Byte

//IIC发送一个字节//返回从机有无应答//1,有应答//0,无应答			  static void IIC_Send_Byte(u8 txd){                            u8 t;      	SDA_OUT(); 	        for(t=0;t<8;t++)    {           IIC_SDA((txd&0x80)>>7);        txd<<=1; 		IIC_SCL(1);				I2C_delay();		IIC_SCL(0);		I2C_delay();	}	 } 	
开发者ID:dammstanger,项目名称:FCU_UCOSII150617,代码行数:18,



注:本文中的I2C_delay函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ I2C_start函数代码示例
C++ I2C_WriteDeviceRegister函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。