HT68F30控制5150 IIC控制总线

本文详细介绍了IIC总线应答信号的原理和实现方式,包括数据传输、应答信号ACK的发送与检测过程。通过使用C语言编程,展示了如何在设备间进行有效通信,并确保数据传输的准确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、关于应答信号的一点知识

数据传输与应答信号ACK 发送到SDA线上的数据必须是8位的。每次传输可以发送的数据不受限制。每个字节后必须在时钟的第9个脉冲期间释放数据总线(SDA为高), 由接收器发送一个ACK(把数据总线的电平拉低)来表示数据成功接收。 IIC总线应答信号、主机拉高、释放总线、如果从机拉底表示有应答、如果从机不拉低、表面没有应答

void CheckACK(void)
{	unsigned short i=200;
	SDAC=0;
	SDA=1;// 先由主机把数据线拉高释放总线 再去检测数据线的电平高低
	SDAC=1;											   //Config SDAC as Input
	SCL=1; _delay(10);								//Set SCL=1, Delay 10us
	while(i--)
	{
		Test_Pc4C=0;  //如果从机应答的话把这个引脚电平拉高
		Test_Pc4=1;	
		if(!SDA) {
			//DeviceFlag=1; 
			_tmpc0=0;//取消PC5引脚的复用功能
			Test_Pc5C=0;  //如果从机应答的话把这个引脚电平拉高
			Test_Pc5=1;
			break;
		}		   //Break if Device Respounding
		_delay(100);
									   //200*100uS=2ms Waiting Time
	} 
	SCL=0; _delay(10);								//Set SCL=0, Delay 10us
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值