컴퓨터 지식 네트워크 - 컴퓨터 프로그래밍 - 마스터가 슬레이브의 데이터를 읽을 때 SDA와 SCL 수준을 어떻게 설정해야 하나요?

마스터가 슬레이브의 데이터를 읽을 때 SDA와 SCL 수준을 어떻게 설정해야 하나요?

어떤 종류의 마이크로 컨트롤러를 가지고 있는지 모르겠습니다. 먼저 SDA를 입력 상태로 설정하고 51을 사용하지 않는 것 같습니다. 그런 다음 데이터를 읽을 때 SCL을 높게 설정하십시오. SDA 핀 레벨 상태를 확인하려면 DATA |= 1입니다. 그런 다음 SCL을 낮게 설정하고 다음 비트가 읽힐 때까지 기다립니다. DATA<<1이면 데이터가 왼쪽으로 한 비트 이동됩니다. SDA 상태를 확인하려면 SCL을 다시 높게 설정하십시오. 8비트 데이터를 순서대로 완성합니다.

INT8U I2C_ReciveByte(void)

{

INT8U 데이터 = 0;

INT8U iLoop;

SETBIT (I2C_PORT,SDA); //SDA를 높게 설정

CLEARBIT(I2C_DIR,SDA); //SDA를 입력으로 설정

//8비트 데이터를 비트 단위로 읽기

p> p>

for(iLoop = 0; iLoop < 8; iLoop++){

SETBIT(I2C_PORT,SCL) // SCL을 높게 설정

I2C_Delay(1) ;

데이터 <<= 1;

if(CHECKBIT(I2C_IN,SDA) != 0){//SDA 상태 감지

데이터 |= 1 ;

}

CLEARBIT(I2C_PORT,SCL); // SCL을 낮게 설정

I2C_Delay(1);

}

SETBIT(I2C_DIR,SDA ); // SDA를 출력으로 설정

데이터 반환;

}

上篇: 서버를 살 여유가 없습니다. 노트북을 서버로 직접 사용할 수 있습니까? 下篇: 인터넷 TV란 무엇인가요? 네트워크 TV는 어떻게 작동합니까?
관련 내용