打印

STM32的I2C在接收的时候如何提供的时钟?

[复制链接]
2572|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
不锈钢铁|  楼主 | 2011-8-25 16:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我最近在用STM32连接一个铁电,借鉴了下EEPROM的例程,写数据的部分明白了。但是接收我有些不懂,存储设备是不会提供时钟的,STM32在读数据的时候需要给存储器提供始终吧,可是我没看出来是这是怎么提供时钟的
沙发
不锈钢铁|  楼主 | 2011-8-25 16:58 | 只看该作者
/* While there is data to be read */
  while(NumByteToRead)  
  {
    if(NumByteToRead == 1)
    {
      /* Disable Acknowledgement */
      I2C_AcknowledgeConfig(I2C_EE, DISABLE);
      
      /* Send STOP Condition */
      I2C_GenerateSTOP(I2C_EE, ENABLE);
    }

    /* Test on EV7 and clear it */
    if(I2C_CheckEvent(I2C_EE, I2C_EVENT_MASTER_BYTE_RECEIVED))  
    {      
      /* Read a byte from the EEPROM */
      *pBuffer = I2C_ReceiveData(I2C_EE);

      /* Point to the next location where the byte read will be saved */
      pBuffer++;
      
      /* Decrement the read bytes counter */
      NumByteToRead--;        
    }

使用特权

评论回复
板凳
香水城| | 2011-8-25 17:01 | 只看该作者
用示波器看不出来吗?

使用特权

评论回复
地板
不锈钢铁|  楼主 | 2011-8-25 18:18 | 只看该作者
3# 香水城 在家呢,手头没示波器。。。。
城主,能否直言讲下,小弟不胜感激。
还有就是,我的程序总是卡在while(!I2C_CheckEvent(I2C2, I2C_EVENT_MASTER_MODE_SELECT));

使用特权

评论回复
5
sinadz| | 2011-8-25 18:35 | 只看该作者
楼主在家科研,佩服

使用特权

评论回复
6
不锈钢铁|  楼主 | 2011-8-25 18:40 | 只看该作者
5# sinadz 都是无奈的。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:小鸟快跑

31

主题

730

帖子

5

粉丝