初级会员

- 积分
- 58
- 金钱
- 58
- 注册时间
- 2016-11-3
- 在线时间
- 14 小时
|

楼主 |
发表于 2016-11-4 17:04:26
|
显示全部楼层
void I2C_EE_PageWrite(uint8_t *pBuffer,uint8_t WriteAddr,uint16_t NumByteToWrite)
{
while(I2C_GetFlagStatus(I2C1,I2C_FLAG_BUSY));
I2C_GenerateSTART(I2C1,ENABLE);
while(!I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_MODE_SELECT)); //STM32的I2C主模式,EV5
I2C_Send7bitAddress(I2C1,EEPROM_ADDRESS,I2C_Direction_Transmitter);
while(!I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED)); // EV6
printf(" hahaha");//用串口检测 发现卡死在这个应答接受位置
I2C_SendData(I2C1,WriteAddr); //发送完I2C的地址后的第一个数据是将要对存储矩阵写入的地址
while(!I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_BYTE_TRANSMITTED)); // EV8
while(NumByteToWrite --)
{
I2C_SendData(I2C1,*pBuffer); //开始发送数据
pBuffer++;
while(!I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_BYTE_TRANSMITTED));
}
I2C_GenerateSTOP(I2C1,ENABLE); //数据发送完毕,发送停止信号
}
我用串口检测了一下,就是在IIC设备寻址之后没有应答产生, 难道是它的硬件连接问题? |
|