zoukankan      html  css  js  c++  java
  • IIC学习笔记

    近期做项目,用到SM32F10x系列的芯片,经常使用到IIC总线来做为主从机之间的写命令和读数据,所以也自己去学习了IIC总线。自己也做些小的笔记。

    一、IIC总线要实现线与功能,所以SDA和SCL口线必须设置为开漏输出模式,我们使用的MCU硬件接口IIC时,口线会被自动设置成为开漏模式,但有时我们会使用IO口来模拟IIC总线,那么怎么设置口线呢?
     ①MCU口线支持开漏模式,则直接将SDA和SCL设置为开漏输出。
     ②MCU不支持开漏模式:
     最合理的做法是:当设置口线电平为高电平时,我们将其设置为输入状态,然后利用口线上的上拉电阻将口线拉高,这样即使两边电平不一致时,也不会造成IO口的损坏。

     二、IIC总线SDA线是在SCL线为高电平时才有效,在时钟SCL为高电平期间,SDA如果发生电平变化,就会终止或重启IIC总线,所以,在数据传输的过程中,要在SCL为低电平的时候去更改SDA的电平。

    三、数据线和信号线构成的通信线路。

    四、总线空闲时间:SDA和SCL都保持高电平的时间(一个结束条件和起始条件之间的总线空闲时间)。

    五、起始信号:SCL信号保持高电平期间,数据线的电平由高到低跳变。(程序中设置SDA和SCL为高也是有讲究的,SDA应该先拉高,这样可以避免某些状态下产生停止信号)

    六、停止信号:SCL信号保持高电平期间,数据线的电平由低到高跳变。

    七、应答信号:(ACK)被寻址的设备,接收到一个字节后都必须产生一个应答信号。信号在SCL为高电平期间,接收设备把SDA拉为低电平就可以产生一个应答信号。

    。。。。。。未完待续。今后学习过程中在补充!

  • 相关阅读:
    Swift Development – List of Resources You Must Bookmark
    Best jQuery Plugins of the Month – May 2014
    css,js移动资源
    移动技术资源
    视网膜New iPad与普通分辨率iPad页面的兼容处理
    使用匿名函数给setInterval()传递参数
    藏地传奇js
    藏地传奇瀑布流
    jQuery处理JSONP
    网易游戏js-滚动支持自适应
  • 原文地址:https://www.cnblogs.com/zhou2011/p/2755949.html
Copyright © 2011-2022 走看看