본문 바로가기

임베디드 (Embedded)/STM3217

[STM32] LCD, 조이스틱, RTC, 부저 이용하여 시계 만들기 시계 프로젝트 전반적인 기능 흐름도는 다음과 같다. 시계는 LCD 화면에 보여진다. ----------------------------------------------------------------------------- 1. NORMAL_STATE : 현재시간 출력 플래시 메모리에서 읽어와서 그 시간부터 흘러간다. 스위치 한 번 클릭 → time_setting 스위치 2초 이상 클릭 → alarm_time_setting 스위치 더블 클릭 → music_select 2. TIME_SETTING : 현재시간 조정하기 이 모드에 들어오면 현재 시간이 나와있고, 조이스틱으로 바꿀 현재 시간을 조정하면 된다. 커서 위치를 구분하기 위해 lcd화면에 A, H, M, S 텍스트로 표현하였다. 조이스틱 좌우로 커서.. 2023. 11. 21.
[STM32] RTC Alarm 기능 사용하기 말 그대로 mask = 가리겠다 는 뜻이다. 즉, mask를 enable 하면 가려서 신경 안 씀 mask를 disable 하면 가리지 않고 비교대상으로 삼겠다는 뜻 Alarm Mask Date Week Day Disable(0) : 날짜도 고려 Enable(1) : 날짜는 무시 ex) 날짜가 1일일 때 울림 Alarm Mask Hours Disable(0) : 시(hour) 고려 Enable(1) : 시 무시 ex) 오전 8시에 울림 Alarm Mask Minutes Disable(0) : 분(minute) 고려 Enable(1) : 분 무시 ex) xx시 30분에 울림 Alarm Mask Seconds Disable(0) : 초(second) 고려 Enable(1) : 초 무시 ex) 45초에 울림 .. 2023. 11. 14.
[STM32] LCD 커서 이동 lcd 설정 방법은 이전 포스팅에 있다. https://silvow94.tistory.com/39[STM32] STM32CubeIDE i2C-LCD 사용하기NUCLEO-F429ZI 보드를 이용하여 lcd를 출력해보자. (board select로 프로젝트 만든 상태) 먼저 i2C 모드를 Disable에서 I2C로 활성화하면 자동으로 핀2개가 설정된다. (나는 Pb8이 더 편해서 옮겼다.) generate codesilvow94.tistory.com이번에는 각 줄에서 커서 위치를 이동해보자. 먼저, lcd는 2행 16열로 구성되어 있다. lcd의 주소는 다음과 같다. ( lcd 장치의 주소는 제조사마다 다를 수 있는데, 보통은 0X27이나 0X3F이다. ) #define LCD_ADDR (0x27 2023. 11. 14.
[STM32] STM32cubeIDE 버튼 한 번 클릭, 더블 클릭, 길게(n초 이상) 클릭하기 프로젝트를 하다보면 버튼 수가 모자라거나, 여러 버튼을 사용하기엔 핀이 모자랄 수 있다. 따라서 버튼 하나로 여러 기능을 구현할 수 있도록 길게 눌렀을 때, 더블 클릭했을 때, 그냥 한 번 눌렀을 때를 구분하고자 한다. pulling 방식보단 interrupt 방식이 cpu를 덜 잡아먹으므로 나는 인터럽트 방식을 사용했다.1. 핀, 환경 설정버튼 핀은 사용자마다 다를 수 있다. 나는 PF7 핀에 Pull-Up 저항을 사용하였다. 버튼을 길게 눌렀다가... 떼는! 순간을 인식할 수 있어야 하기 때문에 Rising/Falling edge를 모두 읽을 수 있어야 한다!!인터럽트를 사용할 것이므로 관련 세팅까지 꼭 해주자.설정을 다 했으면 generate code를 하고 main.c로 넘어가자~ 2. 코드 작성.. 2023. 11. 10.
728x90