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를 쓰는 구조.. 



댓글

이 블로그의 인기 게시물

CE인증을 받았는데 왜 CB를 걸까?

PEMS, MEMS의 의미, ME Equipment

의료기기 제품의 신뢰성 시험