指定地址读指定长度程序.c

来自「单片机数据通讯典型应用(光盘内容)」· C语言 代码 · 共 30 行

C
30
字号
//**********从IIC总线上器件指定地址读指定长度的数据IIC_read_lendata()***
bit IIC_read_lendata (unsigned char cadd, unsigned char data_address, unsigned char *ptr, unsigned char len)
{
	IIC_Start();				 			//发送IIC 启动信号
	IIC_SendByte (cadd);					//发送从器件写命令
	if(CACK_flg()==0)						//检测应答信号
	{
		return 0;
	}
	IIC_SendByte (data_address);			//发送数据地址
	if(CACK_flg()==0)						//检测应答信号
	{
		return 0;
	}
	IIC_Start();				 			//重新发送IIC启动信号
	IIC_SendByte (cadd|0x01);				//发送器件读命令
	if(CACK_flg()==0)				     	//检测应答信号
	{
			return 0;
		}
		for(;len>1;len--)					//连续接收LEN-1长度的字节数据
		{
			*ptr++= IIC_ReceiveByte ();
			Send_Ack ();					//发送应答信号
		}
		*ptr= IIC_ReceiveByte ();			//接收最后一个字节
		Send_NoAck();						//	发送无应答信号
		IIC_Stop();							//	发送IIC停止信号	
		return 1;		
	}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?