• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

关于STM32的模拟IIC通信实验

qiuqiu 2020-11-24 浏览量:434
mg id="aimg_175818" aid="175818" src="http://www.openedv.com/data/attachment/forum/202011/23/112608wgk2f9fkf9u3ffng.png" data-ke-src="http://www.openedv.com/data/attachment/forum/202011/23/112608wgk2f9fkf9u3ffng.png" zoomfile="data/attachment/forum/202011/23/112608wgk2f9fkf9u3ffng.png" file="data/attachment/forum/202011/23/112608wgk2f9fkf9u3ffng.png" class="zoom" data-ke-onclick="zoom(this this.src 0 0 0)" width="487">
在IIC实验中的等待应答型号的函数中,在1出把SDA设置成输入模式,紧接着在2处将SDA输出高电平。
请问为什么要这样做呢,还有就是SDA已经先配置成输入模式,还能输出高电平吗?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 这个就是模拟I2C时序,SDA作为输入和输出时的一个问题。

    1、首先初始化的时候,需要将SCL和SDA设置为,GPIO_Mode_Out_OD,后面就不需要单独的将SDA设置为输入了。


    2、这里我们取了一个巧,因为是OD输出模式,我们现在让SDA为高电平,这个高电平需要外部上拉电阻来维持。

    这两当从机输出为高时,SDA也为高。当从机输出为低的时候,因为OD输出模式,SDA被从机拉低,这时候通过GPIO_ReadInputDataBit()函数就能读到低电平。


    11.jpg



    12.jpg

    • 发布于 2020-11-24
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:2
  • 第一条语句执行完其实外部sda已经高电平了,第二条就是把内部sda输入部分高电平,为了读取外部输入低电平

    • 发布于2020-11-24
    • 举报
    • 评论 0
    • 0
    • 0

  • 它的目的是等待外部输入低电平,这样代表有数据到
    • 发布于2020-12-28
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

关于STM32的模拟IIC通信实验