初级会员

- 积分
- 58
- 金钱
- 58
- 注册时间
- 2019-4-4
- 在线时间
- 13 小时
|

楼主 |
发表于 2019-4-11 10:47:13
|
显示全部楼层
是不是stop要写在最后一个接收的字节之前,ACK/NOACK要写在每一个接受的字节之前?像我这样写对吗?
I2C_GenerateSTART(I2C1,ENABLE);
while(!I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_MODE_SELECT));
I2C_Send7bitAddress(I2C1, addr, I2C_Direction_Receiver );
while(!I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED));
I2C_AcknowledgeConfig(I2C1,ENABLE);
while(!I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_BYTE_RECEIVED));
tmp[0] = I2C_ReceiveData(I2C1);
I2C_GenerateSTOP(I2C1,ENABLE );
I2C_AcknowledgeConfig(I2C1,DISABLE);
while(!I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_BYTE_RECEIVED));
tmp[1] = I2C_ReceiveData(I2C1);
|
|