野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9733|回复: 3

stm32F407 I2C I2C_EE_BufferRead的疑问

[复制链接]
发表于 2018-1-2 11:47:14 | 显示全部楼层 |阅读模式

在A盘里,源程序里的,关于I2C的硬件方式读取字节。  

在uint32_t I2C_EE_BufferRead(u8* pBuffer, u8 ReadAddr, u16 NumByteToRead)函数里,小弟有一个疑问。

  /* Test on EV6 and clear it */
  while(!I2C_CheckEvent(EEPROM_I2C, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED))
    {
    if((I2CTimeout--) == 0) return I2C_TIMEOUT_UserCallback(11);
   }
  /* Clear EV6 by setting again the PE bit */
  I2C_Cmd(EEPROM_I2C, ENABLE);


这里对EV6事件多加了一个I2C_Cmd(EEPROM_I2C, ENABLE);

其他譬如    /* Test on EV5 and clear it */
  while(!I2C_CheckEvent(EEPROM_I2C, I2C_EVENT_MASTER_MODE_SELECT))
  {
    if((I2CTimeout--) == 0) return I2C_TIMEOUT_UserCallback(10);
   }
后面也没有加上  I2C_Cmd(EEPROM_I2C, ENABLE);操作

这是为什么??      看视频的操作里面,好像都没有加上  I2C_Cmd(EEPROM_I2C, ENABLE);这句操作的




回复

使用道具 举报

发表于 2018-1-2 11:53:42 | 显示全部楼层
初始化的时候使能一次就可以了,后面可以不要了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-2 12:29:39 | 显示全部楼层
那是不是理解为   野火给的源程序,   多写了一句话?呵     小弟是初学,不好意思
回复 支持 反对

使用道具 举报

发表于 2018-1-2 13:54:39 | 显示全部楼层
kwqjay 发表于 2018-1-2 12:29
那是不是理解为   野火给的源程序,   多写了一句话?呵     小弟是初学,不好意思

是的,程序里很多语句其实并不是必须,很多时候只是冗余操作,测试的时候你可以注释掉,运行能正常即可
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-23 15:25 , Processed in 0.030538 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表