FT4222 디바이스를 사용하여 I2C에서 MAX77651을 프로그래밍하고있다. 나는 기록부에 글을 쓰고 싶다.I2C 쓰기 프로토콜 : 레지스터 쓰기 방법?
레지스터를 읽을 수있어 하드웨어 문제가 없습니다. 레지스터에서 읽으려면 다음과 같이 진행합니다. 먼저 레지스터를 보내고 난 다음 읽고 싶은 것은 그냥 안에 무엇이 있는지 읽습니다.
쓰기 나는 쓰기를 원하는 레지스터를 보내려고하는데 레지스터에 넣고 싶은 데이터를 보낸다. 그러나 내가 이것을 읽었을 때 나는 예상 된 결과를 얻지 못한다. 여기
내가 읽고 쓰기하려고 programm에의 일부입니다 이uint8 resultat=0x11;
uint8 *p_resultat=&resultat;
int chiffre = 8;
uint16 bytesToWrite2 = 1;
uint16 bytesWritten2=1;
uint8 valeur= 0x06; // Adress of register
uint8 *p_valeur=&valeur;
uint16 slaveAddr = 0x48;
// ***** reading test of 0x06 : expected value : 0xFF
FT4222_I2CMaster_Write(ftHandle,slaveAddr,p_valeur,
bytesToWrite2,&bytesWritten);
chiffre = FT4222_I2CMaster_Read(ftHandle,slaveAddr,p_resultat,1, &bytesRead);
printf("The content of the register %02X is : %02X \n " , valeur , resultat);
printf("reading success if : %d = 0 \n " , chiffre);
//********** Writting test to the register 0x40
***********************************************//
valeur = 0x40;
FT4222_I2CMaster_Write(ftHandle,slaveAddr,p_valeur,
bytesToWrite2,&bytesWritten);
valeur = 0x1F;
FT4222_I2CMaster_Write(ftHandle,slaveAddr,p_valeur,
bytesToWrite2,&bytesWritten);
//*************** Reading of the register 0x40
*******************************************//
valeur= 0x40;
FT4222_I2CMaster_Write(ftHandle,slaveAddr,p_valeur,
bytesToWrite2,&bytesWritten);
chiffre = FT4222_I2CMaster_Read(ftHandle,
slaveAddr,p_resultat,1, &bytesRead);
printf("The content of the register %02X
is : %02X \n " , valeur , resultat);
printf("reading success if : %d = 0 \n " , chiffre);
는 그 코드가 레지스터는 0x40 나에게 1F 표시되어야하지만 그렇지 않다, 여기에 내가 무엇을 얻을 :
The content of the register 06 is : FF
reading success if : 0 = 0
The content of the register 40 is : 00
reading success if : 0 = 0
내 질문은 간단합니다. 등록 할 때 내 질문과 순서는 어떻게해야합니까?
Ps : 필자의 전체 코드는 FT4222에 관한 구성이며 내 문제를 해결하는 데 관련이 없으므로 작성하지 않았습니다.
레지스터 주소와 데이터를 동일한 쓰기 명령으로 보내 주셔서 감사합니다. 그것은 해결책이었습니다. –