I2C协议中的函数uchar I2C_ReadByte()中为什么开始要I2C_SDA = 1?

ucharI2C_ReadByte(){uchara=0,dat=0;I2C_SDA=1;//为什么这样???????????????????I2C_Delay10us(... uchar I2C_ReadByte()
{
uchar a = 0,dat = 0;
I2C_SDA = 1; //为什么这样???????????????????
I2C_Delay10us();
for(a=0; a<8; a++)//接收8个字节
{
I2C_SCL = 1;
I2C_Delay10us();
dat <<= 1;
dat |= I2C_SDA;
I2C_Delay10us();
I2C_SCL = 0;
I2C_Delay10us();
}
return dat;
}
展开
 我来答
wuying081
推荐于2016-09-07 · TA获得超过207个赞
知道答主
回答量:81
采纳率:0%
帮助的人:26.9万
展开全部
总线空闲的时候SDA总线是“1”,所以在读总线之前必须得西安释放总线,才能读取到正确的数据。
意法半导体(中国)投资有限公司
2023-06-12 广告
STM32F103是一款高性能的嵌入式芯片,由意法半导体(STMicroelectronics)公司生产。它是STM32系列芯片之一,具有紧凑、低功耗、高性能等特点,被广泛应用于嵌入式系统中。STM32F103的主要特点包括:1. 集成了A... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式