STM32 模拟IIC读写24C02程序代码
//SCL=0;
GPIO_ResetBits(GPIOB, SCL);
delay_nop();
//SDA=1;
GPIO_SetBits(GPIOB,SDA);
AT24C02_SDA_IO_SET(1);
for (i=0;i<8;i++)
{
delay_nop();
//SCL=1;
GPIO_SetBits(GPIOB,SCL);
delay_nop();
//if (SDA==1) j=1;
if( GPIO_ReadInputDataBit(GPIOB,SDA)==1 )
{j=1;}
else
{j=0;}
k=(k<1)|j;
//SCL=0;
GPIO_ResetBits(GPIOB, SCL);
}
AT24C02_SDA_IO_SET(0);
delay_nop();
return(k);
}
void clock()
{
uint i=0;
AT24C02_SDA_IO_SET(1);
//SCL=1;
GPIO_SetBits(GPIOB,SCL);
delay_nop();
while ((GPIO_ReadInputDataBit(GPIOB,SDA)==1)&&(i<5000))i++;
//SCL=0;
GPIO_ResetBits(GPIOB, SCL);
delay_nop();
AT24C02_SDA_IO_SET(0);
}
uchar WIN24C02_read(uchar address)
{
uchar i;
start();
writex(0xa0);
clock();
writex(address);
clock();
start();
writex(0xa1);
clock();
i=readx();
stop();
//delay2(10);
delay2(50);
return(i);
}
void WIN24C02_write(uchar address,uchar info)
{
start();
writex(0xa0);
clock();
writex(address);
clock();
writex(info);
clock();
stop();
//delay2(50);
delay2(250);
}
#endif
STM32模拟IIC读写24C0 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)