u8 IIC_Wait_Ack(void) 中 “SDA设置为输入”后IIC_SDA 是否可以通过MCU对其进行电平改变

2019-10-16 03:13发布

 今天刚入了个逻辑分析仪,在看三轴加速度时,分析其IIC的波形,当看到u8 IIC_Wait_Ack(void) 时,发现对应的波形与程序不同,
故想问原子哥题中的问题。
带着问题,将过程简单叙述下:
逻辑分析仪中左上写了“0x3A + ACK”,其中A对应的二进制已画出,在黄线后,是进入u8 IIC_Wait_Ack(void)函数了,其中123都在SCL低电平中,45在SCL高电平中,但是2:IIC_SDA=1却没有表现出来,麻烦原子哥解释下,2对应这语句是否可以删去?







友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
正点原子
1楼-- · 2019-10-16 05:57
回复【楼主位】zhuyl456:
---------------------------------
这里IIC_SDA=1是提供上拉而已,至于能不能拉高,得看外部的设备,这里其实这一个引脚已经设置为输入模式了,所以设置为1仅仅是加多一个100K左右的上拉电阻。
程序上没必要删了这句。如果你的IIC没有外加上拉电阻,这里还可以充当这个角 {MOD}。
zhuyl456
2楼-- · 2019-10-16 06:15
设置输入的时候,还可以进行改变的啊?
那如果IIC_SDA=0呢?(其他条件不变)又是个什么情况。。。
正点原子
3楼-- · 2019-10-16 09:50
那就是下拉。
银河之星
4楼-- · 2019-10-16 15:34
初看有问题;深入看才知道没有问题。

一周热门 更多>