OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9320|回复: 6

IIC读写中等待IIC空闲函数中Tmp = I2C_ReadRegister(I2C1, I2C_Register_SR1);这句话有什么作用?

[复制链接]

28

主题

125

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2013-4-14
在线时间
1 小时
发表于 2013-4-19 23:33:58 | 显示全部楼层 |阅读模式

void I2C_EE_WaitEepromStandbyState(void)     
{
  __IO uint16_t SR1_Tmp = 0;

  do
  {
    /* Send START condition */
    I2C_GenerateSTART(I2C1, ENABLE);
    /* Read I2C1 SR1 register */
    SR1_Tmp = I2C_ReadRegister(I2C1, I2C_Register_SR1);          //就是这里,这句话有什么用呢?
    /* Send EEPROM address for write */
    I2C_Send7bitAddress(I2C1, EEPROM_ADDRESS, I2C_Direction_Transmitter);
  }while(!(I2C_ReadRegister(I2C1, I2C_Register_SR1) & 0x0002));
 
  /* Clear AF flag */
  I2C_ClearFlag(I2C1, I2C_FLAG_AF);
 
  /* STOP condition */   
  I2C_GenerateSTOP(I2C1, ENABLE); 
}


我查了参考手册其中有一句
ADDR :地址已被发送( 主模式)/ 地址匹配( 从模式) (Address sent (master mode)/matched
(slave mode))
位1
在软件读取SR1 寄存器后,对SR2 寄存器的读操作将清除该位,或当PE=0时,由硬件清除该
位。
地址匹配(从模式)
0:地址不匹配或没有收到地址;
1:收到的地址匹配。
–  当收到的从地址与OAR寄存器中的内容相匹配、或发生广播呼叫、或SMBus设备默认地址
或SMBus主机识别出SMBus提醒时,硬件就将该位置’1’( 当对应的设置被使能时)。


如果是想要清除SR1的地1位ADDR,那么在读取SR1后,不是应该按照要求再读取SR2么?
如果不是这个目的,那么要这句话有什么用呢?

我可以一辈子都呆在家里不出来么?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-4-20 00:08:53 | 显示全部楼层
回复 支持 反对

使用道具 举报

28

主题

125

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2013-4-14
在线时间
1 小时
 楼主| 发表于 2013-4-20 15:39:53 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
原子大哥。。。。。就是指望你啊。
还有啊大哥,问问你,你觉得学习东西,就像这个问题一样,有必要一直纠结,追寻到底么?
我可以一辈子都呆在家里不出来么?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-4-20 18:02:40 | 显示全部楼层
回复【3楼】杨帆:
---------------------------------
我说过STM32的硬件IIC是个鸡肋,就是有人喜欢去用,去折腾,那我只能祝福你们玩的开心,学的愉快.
至于寻根刨底嘛,送你句话:有所为,有所不为.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

28

主题

125

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2013-4-14
在线时间
1 小时
 楼主| 发表于 2013-4-20 19:36:29 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
谢谢原子哥指教,我开始看SPI了。
我可以一辈子都呆在家里不出来么?
回复 支持 反对

使用道具 举报

28

主题

125

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2013-4-14
在线时间
1 小时
 楼主| 发表于 2013-4-20 20:03:09 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
用别人的库函数例子实验成功,后来我用原子哥的例子,把写寄存器方式改写成库函数方式,也很顺畅。
十分感谢原子哥的这个论坛,好多问题都能找到答案。有这么一个环境真好,以后我就住下来了,
各位大神们不要嫌弃我,我会好好学,完成从菜鸟到菜农的进化。
我可以一辈子都呆在家里不出来么?
回复 支持 反对

使用道具 举报

4

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2015-1-19
在线时间
0 小时
发表于 2015-6-17 22:10:53 | 显示全部楼层
回复【6楼】杨帆:
---------------------------------
请问搞定了硬件IIC吗?
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-21 04:29

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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