EEPROM 디바이즈 장치 주소 변수 수식 질문입니다.
301
작성한 질문수 1
답변 1
1
안녕하세요!

이 그림을 보시면, 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비트만 시프트 하는 방식으로 해도 문제는 없을 것 같네요!
혹시 이해가 안되시면 답글 부탁드립니다~
이걸 배운후 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





