inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

EEPROM 디바이즈 장치 주소 변수 수식 질문입니다.

301

fromSKY

작성한 질문수 1

0

안녕하세요.
EEPROM 장치주소 변수 계산식에서 우측으로 8비트 시프트 후 다시 좌측으로 1비트 시프트하는 이유가 궁금합니다.
 

eeprom 드론-개발 iot

답변 1

1

ChrisP

안녕하세요!

이 그림을 보시면, Device Address의 맨 하위 비트(bit0)는 I2C의 읽기/쓰기를 표현하는 비트이고, 페이지 주소의 상위 두 비트는 bit1과 bit2에 쓰여져야 합니다.

만약 우측으로 8비트 시프트 후에 좌로 1비트 시프트를 하지 않는다면 그 값이 위의 P1과 P0에 쓰여지는게 아니라 P0와 R/W 에 쓰여지겠죠.

(만약 devAddress = (page*16)>>8 | 0xA0; 이렇게 작성한다면요)

그럼 엉뚱한 주소에 접근하게 되므로 좌로 1비트를 시프트 하는 겁니다.

 

참고로 강의에서는

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

이렇게 작성했는데, HAL드라이버를 쓴다면

devAddress = (page*16)>>7 | 0xA0;

이렇게 그냥 우로 7비트만 시프트 하는 방식으로 해도 문제는 없을 것 같네요!

 

혹시 이해가 안되시면 답글 부탁드립니다~

0

fromSKY

저의 질문을 찰떡 같이 알아들으시고 답변 주셨네요. 처음부터 7비트 시프트 하면 되는 거 아닌가 라는 생각이 들었거든요.  답변 감사합니다.

0

ChrisP

안녕하세요! 답변이 도움이 되었다니 다행입니다.

그럼 앞으로도 안전하고 즐거운 드론 개발 되시기 바랍니다!

이걸 배운후 freertos 및 can통신으로 전환가능할까요?

0

34

0

비행승인 문의드립니다

0

57

0

드론의 M4 모터가 느리게 작동합니다.

0

95

2

STM32CubeIDE 관련해서 질문이 있습니다.

0

113

2

while문 루프 속도

0

77

2

변수 선언

0

70

2

FS-i6를 꺼도 LED 토글되는 이유

0

84

2

Fs-i6 i-bus 수신 데이터 이상

0

138

3

3-4. UBX 위도 경도 정보 Terminal에서 깨짐 현상

0

110

2

3-4. LED 토글 안됨

0

60

1

3-1. M8N GPS 강의 통신 연결 관련 문의

0

94

1

2-3. LPS22HH 강의 수행값이 아두이노 IDE Plotter 및 Terminal에서 인식 안됨

0

99

2

6-4 SwC 2000

0

115

2

6-4 ESC Calibration

0

75

1

esc, 모터 교체

0

136

2

부저 소리가 안납니다.

0

149

2

비행 질문

0

78

1

7-5. offset

0

84

2

sysmem.c

0

88

2

전체 제어의 주기를 1KHz로 설정한 이유가 궁금합니다.

0

102

2

부품 구매 관련 문의

0

74

1

PID 게인 문제

0

97

3

3d telemetry cp210x 연결

0

130

2

8-1. 3DR Telemetry HAL_UART_Receive_IT(&huart1, &uart1_rx_data, 1); 관련 문의

0

86

2