인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

JIN님의 프로필 이미지
JIN

작성한 질문수

바닥부터 시작하는 STM32 드론 개발의 모든 것

7-2. EEPROM 데이터 관리 프로토콜 정의

EEPROM Page Write 관련 질문

작성

·

334

1

unsigned char devAddress = ((page*16)>>8)<<1 | 0xA0; 

HAL_I2C_Mem_Write(&hi2c1, devAddress, wordAddress, I2C_MEMADD_SIZE_8BIT, &data[0], sizeof(data), 1);

HAL_I2C_Mem_Read(&hi2c1, devAddress, wordAddress, I2C_MEMADD_SIZE_8BIT, &data[0], sizeof(data), 1);

이 부분에서, R/W bit(don't care) 때문에 "<<1" 한 것은 이해하겠는데, 해당 devAddress를 바로 I2C Write 함수에 넣으면

R/W bit는 '0'이 되어 항상 쓰기 아닌가요?

이 부분이 I2C Read에도 그대로 적용되어서 R/W bit에는 계속 '0'이 들어갈텐데 어떻게 Read를 하는지 궁금합니다.

답변 2

0

ChrisP님의 프로필 이미지
ChrisP
지식공유자

안녕하세요! 네 맞습니다. I2C 는 통신 프로토콜이 정해져있어서 HAL 드라이버함수 내에서 처리해줍니다. 잘 이해하셨습니다!

0

JIN님의 프로필 이미지
JIN
질문자

강의 7-1 을 다시 보니, 해당 비트 부분은 어떤값이 들어와도 HAL_Driver 내에서 처리해주는 거군요. 맞나요?

JIN님의 프로필 이미지
JIN

작성한 질문수

질문하기