初级会员

- 积分
- 159
- 金钱
- 159
- 注册时间
- 2016-4-5
- 在线时间
- 32 小时
|

楼主 |
发表于 2016-7-21 09:27:43
|
显示全部楼层
void PCF8563_ByteWrite(uint8_t REG_Address,uint8_t REG_data)
{
while(I2C_GetFlagStatus(I2C1,I2C_FLAG_BUSY)!=RESET);
I2C_TransferHandling(I2C1, PCF8563_ADDR, 1, I2C_SoftEnd_Mode, I2C_Generate_Start_Write);
while(I2C_GetFlagStatus(I2C1, I2C_FLAG_TXIS) == RESET);
I2C_SendData(I2C1,REG_Address);
while(I2C_GetFlagStatus(I2C1, I2C_FLAG_TCR) == RESET);
I2C_TransferHandling(I2C1, PCF8563_ADDR, 1, I2C_AutoEnd_Mode, I2C_Generate_Stop);
while(I2C_GetFlagStatus(I2C1, I2C_FLAG_TXIS) == RESET);
I2C_SendData(I2C1,REG_data);
while(I2C_GetFlagStatus(I2C1, I2C_FLAG_STOPF) == RESET);
I2C_ClearFlag(I2C1, I2C_ICR_STOPCF);
}
uint8_t PCF8563_ByteRead(uint8_t REG_Address)
{
uint8_t REG_data;
while(I2C_GetFlagStatus(I2C1,I2C_FLAG_BUSY)!=RESET)
I2C_TransferHandling(I2C1, PCF8563_ADDR, 1, I2C_SoftEnd_Mode, I2C_Generate_Start_Write);
while(I2C_GetFlagStatus(I2C1, I2C_FLAG_TXIS) == RESET)
I2C_SendData(I2C1,REG_Address);
while(I2C_GetFlagStatus(I2C1, I2C_FLAG_TC) == RESET)
I2C_TransferHandling(I2C1, PCF8563_ADDR, 1, I2C_AutoEnd_Mode, I2C_Generate_Start_Read);
while(I2C_GetFlagStatus(I2C1,I2C_FLAG_RXNE) == RESET)
REG_data = I2C_ReceiveData(I2C1);
while(I2C_GetFlagStatus(I2C1,I2C_FLAG_STOPF) == RESET)
I2C_ClearFlag(I2C1, I2C_ICR_STOPCF);
return REG_data;
}
|
|