lcd 설정 방법은 이전 포스팅에 있다.
https://silvow94.tistory.com/39
이번에는 각 줄에서 커서 위치를 이동해보자.
먼저, lcd는 2행 16열로 구성되어 있다.
lcd의 주소는 다음과 같다.
( lcd 장치의 주소는 제조사마다 다를 수 있는데, 보통은 0X27이나 0X3F이다. )
#define LCD_ADDR (0x27 << 1)
편하게 2진수의 맨 앞의 1은 일단 고려하지 않고 숫자를 말하겠다.
lcd의 첫 번째 줄의 첫 커서로 이동하는 코드 (0~15)
LCD_SendCommand(LCD_ADDR, 0b10000000);
lcd의 두 번째 줄의 첫 커서로 이동하는 코드
(64~79)
LCD_SendCommand(LCD_ADDR, 0b11000000);
2진수(0b니까)에서 10으로 시작하면 1번째 줄, 11로 시작하면 2번째 줄이다.
그럼 나머지 000000(여섯 자리)가 15칸 즉, 2~16열(다 0이면 위에처럼 1열)을 표현한다.
이제부턴 2진수 계산만 할 수 있다면 쉽다.
4번째 열로 이동하고 싶다면 1을 뺀 3을 적으면 된다. 즉, 0b10000011은 1행 4열
0b11001000은 2행 9열 (11로 시작하고, 2진수가 8을 나타냄)
0b10001101은 1행 14열 (10으로 시작하고, 2진수가 13을 나타냄)
따라서,
1행은 0b10xxxxxx
2행은 0b11xxxxxx
n열은 0bxx(n-1)을 표현하면 된다!
커서 위치 이동에 대한 정보가 없어 혼자 파악해 보았는데,
2진수의 첫번째(2의 7승 자리)가 왜 항상 1로 적는지는 아직 모르겠다.
'임베디드 (Embedded) > STM32' 카테고리의 다른 글
[STM32] LCD, 조이스틱, RTC, 부저 이용하여 시계 만들기 (0) | 2023.11.21 |
---|---|
[STM32] RTC Alarm 기능 사용하기 (0) | 2023.11.14 |
[STM32] STM32cubeIDE 버튼 한 번 클릭, 더블 클릭, 길게(n초 이상) 클릭하기 (0) | 2023.11.10 |
[STM32] STM32CubeIDE i2C-LCD 사용하기 (1) | 2023.11.08 |
[STM32] STM32CubeIDE 조이스틱 설정 ADC, DMA (0) | 2023.11.07 |