免费网站设计工具,如何进行网络推广营销,繁峙做网站建设,微信的官方网站怎么做//AT24C02初始化
void AT24C02_Init(void)
{ IIC_Init();
}
//AT24C02的字节写入 写一个字节
void AT24C02_WordWrite(uint8_Address,uint8_t Data)
{ //1。主机发送开始信号 IIC_StartSignal(); //2.主机发送器件地址 写操作 IIC_SentBytes(0xA0); //3.主机等侍从机应…//AT24C02初始化
void AT24C02_Init(void)
{ IIC_Init();
}
//AT24C02的字节写入 写一个字节
void AT24C02_WordWrite(uint8_Address,uint8_t Data)
{ //1。主机发送开始信号 IIC_StartSignal(); //2.主机发送器件地址 写操作 IIC_SentBytes(0xA0); //3.主机等侍从机应答 if(IIC_WaitAck()1) //如果没有应答 { printf(AT24C02 Ack Device Address Error\n); IIC_StopSignal(); } printf( AT24C02 Ack Device Address OK\N); //4.主机发送存储地址 写操作 IIC_SendBytes(Address); if(IIC_WaitAck()1) //如果没有应答 { printf(AT24C02 Ack Data Address Error\n); IIC_StopSignal(); } printf( AT24C02 Ack Data Address OK\N);
//5主机发送存储数据 写操作 IIC_SendBytes(Data); if(IIC_WaitAck()1) //如果没有应答 { printf(AT24C02 Ack Write Data Error\n); IIC_StopSignal(); } printf( AT24C02 Ack Write Date OK\N);
//6主机发送停止信号 IIC_StopSignal(); } //AT24C02读取一个字节 随机读
uint8_t AT24C02_WordRead(uint8_t Address )
{ uint8_t data0; //1。主机发送开始信号 IIC_StartSignal(); //2.主机发送器件地址 写操作 IIC_SentBytes(0xA0); //3.主机等侍从机应答 if(IIC_WaitAck()1) //如果没有应答 { printf(AT24C02 Ack Device Write Address Error\n); IIC_StopSignal(); } printf( AT24C02 Ack Device Write Address OK\N);
//4.主机发送存储地址 打算读取数据的地址 IIC_SendBytes(Address); //5主机等待应答 if(IIC_WaitAck()1) //如果没有应答 { printf(AT24C02 Ack Data Device Address Error\n); IIC_StopSignal(); } printf( AT24C02 Ack Data Device Address OK\N);
//6.主机再次发送开始信号 IIC_StartSignal();
//7.主机发送器件地址 读操作 IIC_SentBytes(0xA1); //8主机等待应答 if(IIC_WaitAck()0) //如果没有应答 { printf(AT24C02 Ack Device Read Address Error\n); IIC_StopSignal(); } printf( AT24C02 Ack Device Read Address OK\N); //9主机读取1个字节数据 dataIIC_ReadBytes( ); 当前读 //10主机发送应答信号 IIC_MasterAck(1);
//11主机发送停止信号 IIC_StopSignal();
return data
}
//读取n字节数据
void AT24C02_RandomRead(uint8_t Address uint8_t *RecvBuf uint8_t Dataleng)
{ //1。主机发送开始信号 IIC_StartSignal(); //2.主机发送器件地址 写操作 IIC_SentBytes(0xA0); //3.主机等侍从机应答 if(IIC_WaitAck()1) //如果没有应答 { printf(AT24C02 Ack Device Write Address Error\n); IIC_StopSignal(); } printf( AT24C02 Ack Device Write Address OK\N);
//4.主机发送存储地址 打算读取数据的地址 IIC_SendBytes(Address); //5主机等待应答 if(IIC_WaitAck()1) //如果没有应答 { printf(AT24C02 Ack Data Device Address Error\n); IIC_StopSignal(); } printf( AT24C02 Ack Data Device Address OK\N);
//6.主机再次发送开始信号 IIC_StartSignal();
//7.主机发送器件地址 读操作 IIC_SentBytes(0xA1); //8主机等待应答 if(IIC_WaitAck()0) //如果没有应答 { printf(AT24C02 Ack Device Read Address Error\n); IIC_StopSignal(); } printf( AT24C02 Ack Device Read Address OK\N); //9主机读取1个字节数据
DatalenDatalen-1;
while(Datalen--)
{ *IRecvBufIIC_ReadBytes( ); IIC_MasterAck(0); //表示主机收到
}
*IRecvBufIIC_ReadBytes( ); //读最后一个字节 //10主机发送应答信号 IIC_MasterAck(1);
//11主机发送停止信号 IIC_StopSignal();
return data
} //uint8_t AT24C02_CurrentAddressRead(void) 当前读 保存当前下一个地址
{ uint8_t data0; //1。主机发送开始信号 IIC_StartSignal(); //2.主机发送器件地址 读操作 IIC_SentBytes(0xA1); //3.主机等侍从机应答 if(IIC_WaitAck()1) //如果没有应答 { printf(AT24C02 Ack Device Address Error\n); IIC_StopSignal(); }
printf( AT24C02 Ack Device Address OK\N); //4.主机读取1个字节数据 dataIIC_ReadBytes(); 当前读 读当前下一个地址 //5主机发送应答信号 IIC_MasterAck(1);
//6主机发送停止信号 IIC_StopSignal();
}