<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

STM32模擬 IIC

作者: 時(shí)間:2012-09-10 來(lái)源:網(wǎng)絡(luò ) 收藏

#ifndef __AT24C02_H__

本文引用地址:http://dyxdggzs.com/article/148435.htm

#define __AT24C02_H__

#includestm32f10x.h

void iicinit(void);

void iicwrite(u8 add,u8 Achar);

u8 iicread(u8 add);

#endif

#includestm32f10x.h

#includeat24c02.h

void iicstart(void);

void iicstop(void);

void ack(void);

void iicwritebyte(u8 a);

u8 iicreadbyte(void);

void iicwrite(u8 add,u8 Achar);

u8 iicread(u8 add);

void iicinit(void);

/////////////////////////////

void delay5us(void)//ums

{

unsigned short i, j;

unsigned short time;

time=5;

for(; time > 0; time--){

for(j = 0; j 5; j++){

for(i = 0; i 1; i++);

}

}

}

void delayms(unsigned short time)//nms

{

unsigned short i, j;

for(; time > 0; time--){

for(j = 0; j 10; j++){

for(i = 0; i 1004; i++);

}

}

}

void iicinit(void)

{

GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;

GPIO_Init(GPIOB, GPIO_InitStructure);

}

void iicstart(void)

{

GPIO_SetBits(GPIOB,GPIO_Pin_7); //sda=1;

delay5us();

GPIO_SetBits(GPIOB,GPIO_Pin_6); //scl=1;

delay5us();

GPIO_ResetBits(GPIOB,GPIO_Pin_7); //sda=0;

delay5us();

}

void iicstop(void)

{

GPIO_ResetBits(GPIOB,GPIO_Pin_7); //sda=0;

delay5us();

GPIO_SetBits(GPIOB,GPIO_Pin_6); //scl=1;

delay5us();

GPIO_SetBits(GPIOB,GPIO_Pin_7); //sda=1;

delay5us();

}

void ack(void)

{

u16 i;

GPIO_SetBits(GPIOB,GPIO_Pin_6);//scl=1;

delay5us();

while(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_7)(i0x2b0)) {i++;}

GPIO_ResetBits(GPIOB,GPIO_Pin_6);//scl=0;

delay5us();

}

void iicwritebyte(u8 a)

{

u16 i;

GPIO_ResetBits(GPIOB,GPIO_Pin_6); //scl=0;

delay5us();

for(i=0;i8;i++)

{

if(a0x80)

GPIO_SetBits(GPIOB,GPIO_Pin_7);//sda=1;

else

GPIO_ResetBits(GPIOB,GPIO_Pin_7);;

a=a1;

GPIO_SetBits(GPIOB,GPIO_Pin_6);//scl=1;

delay5us();

GPIO_ResetBits(GPIOB,GPIO_Pin_6);//scl=0;

delay5us();

}

GPIO_SetBits(GPIOB,GPIO_Pin_7);//sda=1;

delay5us();

}

u8 iicreadbyte()

{

u8 i,temp;

temp=0;

GPIO_SetBits(GPIOB,GPIO_Pin_7);//sda=1;

delay5us();

GPIO_ResetBits(GPIOB,GPIO_Pin_6); //scl=0;

delay5us();

for(i=0;i8;i++)

{

GPIO_SetBits(GPIOB,GPIO_Pin_6); //scl=1;

delay5us();

delay5us();

temp=(temp1)|GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_7);

delay5us();

GPIO_ResetBits(GPIOB,GPIO_Pin_6); //scl=0;

delay5us();

}

GPIO_SetBits(GPIOB,GPIO_Pin_7);//sda=1;

delay5us();

GPIO_ResetBits(GPIOB,GPIO_Pin_6);//scl=0;

delay5us();

return temp;

}

void iicwrite(u8 add,u8 Achar)

{

iicstart();

iicwritebyte(0xa0);

ack();

iicwritebyte(add);

ack();

iicwritebyte(Achar);

ack();

iicstop();

delayms(20);

}

u8 iicread(u8 add)

{

u8 temp;

iicstart();

iicwritebyte(0xa0);

ack();

iicwritebyte(add);

ack();

iicstart();

iicwritebyte(0xa1);

ack();

temp=iicreadbyte();

ack();

iicstop();

return temp;

}



關(guān)鍵詞: IIC 模擬 STM32

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>