LCD 제어를 위한 STM32 Coding
STM32CubeIDE 쓰면서 이상하고 어려운 점.
1. Eval board를 쓸 때
- 꼭 #include <string.h> 를 잊는다.
- Debugger configuration을 할 때 Debugger에서 SWD를 선택하고, ST-Link S/N을 골라주어야 한다.
-이유는 모르겠으나, Printf를 쓸 때 한번만 어설프게 나오고 안나온다.
.. 날 위한 기록
=> 여전히 풀리지는 않았으나, LPUART를 사용하면 Error가 발생하지 않는다.
2. LCD 제어
최근에 LCD 제어관련해서 공부?를 하고 있다.
LCD를 제어할 때 Data0~7번에 연결된 Bit를 다 Reset("1")해주어야 한다.
그런데 Pin = high가 아니라 BSRR(Bit Set Reset Register)에서 해준다.
이유는 여전히 모르겠다.
#define write_8(d) { \
GPIOA->BSRR = 0b1000000000100000 << 16; \ //---32bit register, 16bit shift하여 Reset 해준다.
GPIOB->BSRR = 0b0000000001111011 << 16; \
GPIOA->BSRR = (((d) & (1<<2)) << 13) \
| (((d) & (1<<7)) >> 2); \
GPIOB->BSRR = (((d) & (1<<0)) << 0) \
| (((d) & (1<<1)) << 0) \
| (((d) & (1<<3)) << 0) \
| (((d) & (1<<4)) << 0) \
| (((d) & (1<<5)) << 0) \
| (((d) & (1<<6)) << 0); \
}
이런 예를 보면 1/2줄에서 BSRR을 전부 Reset 해준다.
그리고 Data를 써준다.
LCD의 제어 특성인가 보다.
즉 매 순간순간 Reset 하고 Data를 쓰는 구조..
댓글
댓글 쓰기