110VCGQ/project/revamp_addr/user/Src/user_iic.c

118 lines
2.2 KiB
C
Raw Normal View History

2024-11-18 10:09:39 +08:00
//#include "user_iic.h"
//
//
//
///*时钟线SCL高电平时拉低数据线SDA-------------启动
//时钟线SCL高电平时拉高数据线SDA-------------停止*/
////产生IIC起始信号
//void IIC_Start(void)
//{
// IIC_SDA_1();
// IIC_SCL_1();
// delay_us(4);
// IIC_SDA_0();//START:when CLK is high,DATA change form high to low
// delay_us(4);
// IIC_SCL_0();//钳住I2C总线准备发送或接收数据
//}
////产生IIC停止信号
//void IIC_Stop(void)
//{
// IIC_SCL_0();
// IIC_SDA_0();
// delay_us(4);
// IIC_SCL_1();
// IIC_SDA_1();
// delay_us(4);
//}
////等待应答信号到来
////返回值1接收应答失败
//// 0接收应答成功
//uint8_t IIC_Wait_Ack(void)
//{
// uint8_t ucErrTime=0;
// IIC_SDA_1();delay_us(1);
// IIC_SCL_1();delay_us(1);
// while(READ_SDA())
// {
// ucErrTime++;
// if(ucErrTime>100)
// {
// IIC_Stop();
// return 1;
// }
// }
// IIC_SCL_0();//时钟输出0
// return 0;
//}
////产生ACK应答
//void IIC_Ack(void)
//{
// IIC_SCL_0();
// IIC_SDA_0();
// delay_us(2);
// IIC_SCL_1();
// delay_us(2);
// IIC_SCL_0();
// IIC_SDA_1();
//}
////不产生ACK应答
//void IIC_NAck(void)
//{
// IIC_SCL_0();
// IIC_SDA_1();
// delay_us(4);
// IIC_SCL_1();
// delay_us(4);
// IIC_SCL_0();
// IIC_SDA_1();
//}
////IIC发送一个字节
////返回从机有无应答
////1有应答
////0无应答
//void IIC_Send_Byte(uint8_t txd)
//{
// uint8_t t;
// IIC_SCL_0();//拉低时钟开始数据传输
// for(t=0;t<8;t++)
// {
// if((txd&0x80)>>7)
// {
// IIC_SDA_1();
// }
// else {
// IIC_SDA_0();
// }
// txd<<=1;
// delay_us(2); //对TEA5767这三个延时都是必须的
// IIC_SCL_1();
// delay_us(2);;
// IIC_SCL_0();
// delay_us(2);
// }
//}
//
//
////读1个字节ack=1时发送ACKack=0发送nACK
//uint8_t IIC_Read_Byte(unsigned char ack)
//{
// unsigned char i,receive=0;
// for(i=0;i<8;i++ )
// {
// IIC_SCL_0();
// delay_us(2);
// IIC_SCL_1();
// receive<<=1;
// if(READ_SDA())receive++;
// delay_us(1);
// }
// if (!ack)
// IIC_NAck();//发送nACK
// else
// IIC_Ack(); //发送ACK
// return receive;
//}
//
//
//