본문 바로가기

임베디드 (Embedded)18

[STM32] STM32cubeIDE 버튼 한 번 클릭, 더블 클릭, 길게(n초 이상) 클릭하기 프로젝트를 하다보면 버튼 수가 모자라거나, 여러 버튼을 사용하기엔 핀이 모자랄 수 있다. 따라서 버튼 하나로 여러 기능을 구현할 수 있도록 길게 눌렀을 때, 더블 클릭했을 때, 그냥 한 번 눌렀을 때를 구분하고자 한다. pulling 방식보단 interrupt 방식이 cpu를 덜 잡아먹으므로 나는 인터럽트 방식을 사용했다.1. 핀, 환경 설정버튼 핀은 사용자마다 다를 수 있다. 나는 PF7 핀에 Pull-Up 저항을 사용하였다. 버튼을 길게 눌렀다가... 떼는! 순간을 인식할 수 있어야 하기 때문에 Rising/Falling edge를 모두 읽을 수 있어야 한다!!인터럽트를 사용할 것이므로 관련 세팅까지 꼭 해주자.설정을 다 했으면 generate code를 하고 main.c로 넘어가자~ 2. 코드 작성.. 2023. 11. 10.
[STM32] STM32CubeIDE i2C-LCD 사용하기 NUCLEO-F429ZI 보드를 이용하여 lcd를 출력해보자. (board select로 프로젝트 만든 상태) 먼저 i2C 모드를 Disable에서 I2C로 활성화하면 자동으로 핀2개가 설정된다. (나는 Pb8이 더 편해서 옮겼다.) generate code를 하면 Drivers > STM32F4xx_HAL_Driver의 Inc와 Src 폴더에 i2c 관련 c와 헤더 파일이 생긴 걸 확인할 수 있다. 본격적으로 lcd 사용을 위해 main.c가 있는 Core > Src 폴더에 lcd.c를 추가한다. main에 lcd 주소를 선언하고 /* Private includes ----------------------------------------------------------*/ /* USER CODE BEG.. 2023. 11. 8.
[STM32] STM32CubeIDE 조이스틱 설정 ADC, DMA rank는 x와 y, 2개를 읽을 때 뭐를 먼저 읽을 건지 정한다. 사진과 같이 1순위가 13이라면 PC3으로 연결한 VRX혹은 VRY가 먼저 읽힌다. main.c에서 DMA init이 adc1보다 먼저 와야 한다. 2023. 11. 7.
[STM32] NUCLEO-F429ZI 타이머2,3,4를 이용하여 버튼 led 토글하기 및 주파수 계산 타이머를 위한 보드 설정은 전 글에 나와있으니 참고하자. https://silvow94.tistory.com/36 [STM32] NUCLEO-F429ZI 타이머 카운트 설정 및 HAL_IncTick(), HAL_SYSTICK_Callback()을 이용하여 led 깜빡이기 board selector가 아닌 mcu/mpu로 프로젝트를 만든다. 그럼 다음과 같이 핀 설정이 된다 Timers > RTC > 에서 Activate Clock Source를 눌러 활성화를 해준다. 위의 2번째 탭 Clock Configuration에서 위의 설정을 모두 silvow94.tistory.com 이번에는 타이머 동작 주파수를 이용하여 원하는 주기를 설정해보려 한다. 먼저, 타이머의 Clock Source를 Internal .. 2023. 10. 26.
728x90