新手上路
- 积分
- 45
- 金钱
- 45
- 注册时间
- 2017-10-31
- 在线时间
- 9 小时
|
1金钱
void I2C_EEPROM_Byte_Write(uint8_t Write_Addr,uint8_t data)
{
uint16_t cf=0xFFFF;
// Start
I2C_GenerateSTART(I2Cx,ENABLE);
// wait EV5
while(I2C_GetFlagStatus(I2Cx, I2C_FLAG_SB) == ERROR)
{
}
// Send EEPROM Address
I2C_Send7bitAddress(I2Cx,EEPROM_Device_Addr,I2C_Direction_Transmitter);
// wait EV6
while(I2C_CheckEvent(I2Cx,I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED) != SUCCESS );
// Send Write_Addr
I2C_SendData(I2Cx,Write_Addr);
// wait EV8
while(I2C_CheckEvent(I2Cx,I2C_EVENT_MASTER_BYTE_TRANSMITTING) != SUCCESS );
// Send pBuffer
I2C_SendData(I2Cx,data);
// wait EV8-2
while(I2C_CheckEvent(I2Cx,I2C_EVENT_MASTER_BYTE_TRANSMITTED) != SUCCESS );
I2C_GenerateSTOP(I2Cx,ENABLE);
}
主函数:
int main(void)
{
//Ïμí3ê±ÖóòѾ-±»ÅäÖÃ3é72M
LED_GPIO_Config();
USART_Init_Config();
I2C_EEPROM_Init();
EEPROM_WaitForWriteEnd();
// EEPROM_WaitForWriteEnd();
I2C_EEPROM_Byte_Write(11,52);
EEPROM_WaitForWriteEnd();
I2C_EEPROM_Read(readData,11,1);
printf("readData=%d\n",readData[0]);
show_Message();
while(1)
{
}
}
|
最佳答案
查看完整内容[请看2#楼]
用模拟i2c吧:http://blog.csdn.net/qq_20553613/article/details/78878211
|