본문 바로가기

MCU/STM3230

[STM32] SSD1306 라이브러리 조종기에 드론 배터리 잔량을 알 수 있는 디스플레이가 있으면 좋겠다 싶었다. 그래서 가장 유명하고 많이 쓰이는 모듈을 하나 사서 라이브러리를 만들기 시작했다. 직접 라이브러리 만드는 이유는 그냥 어떻게 굴러가는지 알고 싶어서다. 다른 오픈 라이브러리 갖다 쓰기 싫었음. 과정은 1. 데이터 시트 정독. 2. 다른 오픈 라이브러리 보면서 구현해야하는 기능 찾기. 3. 내가 라이브러리 만들어보기. 어차피 해야하는 건 정해져있기 때문에 내 식대로 만든다고 크게 달라지는 건 없다. 그냥 내가 만들어서 익숙하다는 거...? 약간의 커스텀...? 개발환경, 예제 펌웨어, 라이브러리, 유저 설정은 깃허브 리드미에 정리해두었다. 깃허브 링크 mokhwasomssi/stm32_hal_ssd1306 SSD1306, I2C,.. 2021. 7. 13.
[STM32] dshot 프로토콜 라이브러리 dshot은 드론 모터를 구동하기 위한 ESC 디지털 프로토콜입니다. 보통 드론 만들 때 oneshot같은 아날로그 프로토콜을 사용하는데 저는 그냥 dshot이 멋있어보여서 이거로 하기로 결심했습니다. ... 하다가 하다가, XX일까지 안되면 걍 oneshot 쓰자 했는데 다행히 됐습니다. 다행입니다. 깃허브 링크 mokhwasomssi/stm32_hal_dshot Dshot, Drone ESC, STM32 HAL. Contribute to mokhwasomssi/stm32_hal_dshot development by creating an account on GitHub. github.com 제가 작성한 dshot 프로토콜 라이브러리입니다. 가져다 쓰기는 불편한 코드지만 동작 과정에 대해서 알기 쉽게 작.. 2021. 7. 8.
HAL_TIM_PWM_Start_DMA 함수의 딜레이 HAL_TIM_PWM_Start_DMA 함수를 이용해서 pwm 신호를 하나만 보낼 때는 문제가 없다. 문제는 2개 이상의 pwm 신호를 보낼 때 어느정도 딜레이가 생긴다는 점이다. HAL_TIM_PWM_Start_DMA 함수에서 처리하는 내용이 많아서 딜레이가 생기나 싶었지만 그게 원인은 아니였다. 맨 마지막에 dma request를 주는 식으로 두 신호간의 간격을 좁힐 순 있지만 아예 없애진 못했다. 다른 자료에서 신호를 재전송하기 전에 dma request를 꺼줘야한다는 말을 하길래 이유는 모르겠지만 일단 tc interrupt시에 dma request를 꺼주니 딜레이는 거의 사라졌다. 이유가 뭘까? 🤔 2021. 6. 12.
[STM32CubeIDE] 다크 모드 Dark Theme을 적용하고자 합니다. 기본 Dark theme은 특정 상황에서 글씨가 잘 보이지 않는 버그가 있습니다. 그래서 다른 dark theme을 설치해서 적용해보도록 하겠습니다. Help에 Eclipse Marketplace 들어가셔서 theme 검색하시고 맘에 드는거 설치하시면 됩니다. 저는 Darkest Dark Theme with DevStyle 테마를 설치하였고 NightLion을 선택해서 사용하고 있습니다. 2021. 5. 27.
NUCLEO-F103RB로 STM32CubeIDE 시작하기 3 STM32CubeIDE 처음 사용하는 사람을 대상으로 작성하였습니다. 개발환경 : STM32CubeIDE 개발보드 : NUCLEO-F103RB 목표 : 내장 led 제어, UART로 문자열 출력. 목차 NUCLEO-F103RB로 STM32CubeIDE 시작하기 1 0. 서론 1. 프로젝트 생성. 2. ST-LINK 설정. NUCLEO-F103RB로 STM32CubeIDE 시작하기 2 3. 클럭 세팅 NUCLEO-F103RB로 STM32CubeIDE 시작하기 3 4. LED 4-1. STM32CubeMX를 이용해서 GPIO 설정 4-2. LED 깜빡이기 NUCLEO-F103RB로 STM32CubeIDE 시작하기 4 5. UART 5-1. STM32CubeMX를 이용해서 UART 설정 5-2. UART 통신.. 2021. 5. 17.
NUCLEO-F103RB로 STM32CubeIDE 시작하기 2 STM32CubeIDE 처음 사용하는 사람을 대상으로 작성하였습니다. 개발환경 : STM32CubeIDE 개발보드 : NUCLEO-F103RB 목표 : 내장 led 제어, UART로 문자열 출력. 목차 NUCLEO-F103RB로 STM32CubeIDE 시작하기 1 0. 서론 1. 프로젝트 생성. 2. ST-LINK 설정. NUCLEO-F103RB로 STM32CubeIDE 시작하기 2 3. 클럭 세팅 NUCLEO-F103RB로 STM32CubeIDE 시작하기 3 4. LED 3-1. STM32CubeMX를 이용해서 GPIO 설정 3-2 LED 깜빡이기 NUCLEO-F103RB로 STM32CubeIDE 시작하기 4 5. UART 5-1. STM32CubeMX를 이용해서 UART 설정 5-2. UART 통신으.. 2021. 5. 17.