본문 바로가기
  • 경제적 자유를 얻는 그날까지
728x90
반응형

STM3212

728x90
반응형
SwiftF4 FC 개발 프로젝트 (1) - 프로젝트 생성 및 디버그 환경 설정 swiftF4는 STM32F411CEU6 기반의 FC를 개발하는 프로젝트입니다. 하드웨어는 ATK-minifly 제품을 이용하고, 펌웨어는 Bitcraze사에서 나온 오픈소스 펌웨어 Crazyfile를 하드웨어에 맞도록 이식하여 개발할 예정입니다. 본 프로젝트를 하는 이유는 아래와 같습니다. 1) Crazyfile 기반의 오픈소스 펌웨어와 생태계 이해 2) 하드웨어에 맞는 이식성 3) 하드웨어 확장에 대한 개발 프로젝트 수행 본 프로젝트에서 나온 하드웨어에 대한 자료는 아래를 참고하면 됩니다. https://ko.aliexpress.com/item/1005006306684091.html?gatewayAdapt=glo2kor 117085.0₩ 5% OFF|오픈 소스 쿼드콥터 미니플라이 UAV 비행 제어, .. 2024. 3. 16.
STM32 CubeMX 에서 빌드시 'multiple definition of ... '오류 해결 방법 STM32 CubeMX에서 소스코드와 헤더파일을 추가하여 컴파일하다보면 아래와 같은 multiple definition of ... 오류가 빈번하게 나타난다. 특별히 문제가 될 만한 것이 없어 보이는데 자꾸 에러를 띄어서 여기저기 찾아보았다. /opt/st/stm32cubeide_1.11.2/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.linux64_1.0.100.202210260954/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld: ./Core/Src/usart.o:/home/swift/workspace/STM32Cub.. 2023. 2. 25.
Betaflight 이클립스 개발환경 설정 - 2 Global Tools paths에 빌드 툴체인 설정 C:\eclipse\GNU MCU Eclipse\Build Tools\2.12-20190422-1053\bin Environment에 path 설정 Workspace Tool Paths 설정 2. Pack 설치 Packs 화면에서 아래 노란색 순환하는 화살표를 클릭하면 CMSIS package가 업데이트되어야 하는데 아래와 같은 에러가 나면서 실행이 중지되었다. 자세히 보면 자바관련 에러처럼 보이는데 검색을 해보니 xml 의 URL을 가져올 때 https의 프로토콜로 가져오지 않아서 발생하는 문제라는 것을 확인하였다. 따라서 문제의 해결은 아래와 같이 할 수 있다. Window -> Preferences -> C/C++ -> Packages -> Re.. 2020. 4. 15.
STM32CubeIDE에서 C++ 프로젝트 개발하기 STM32는 주로 C 기반을 개발하지만 좋은 라이브러리를 사용할 때는 클래스로 개발된 것들이 많아서 C++을 사용해야 할 때가 있다. 오늘은 확장성 있는 개발을 위해 STM32CubeIDE에서 C++ 프로젝트를 만드는 것을 다루어본다. 원래 STM32CubeIDE는 C/C++을 지원하고 있으니 클래스 사용이 가능하지만 C/C++로 프로젝트를 생성하더라도 컴파일러가 정상적으로 컴파일 되지 않는다. 아래와 같이 STM32 프로젝트로 생성하고, Target Langeuage를 C++로 생성한다. C++로 프로젝트를 생성했지만 파일들은 *.c로 생성된다. 클래스를 만들고 빌드하면 아래와 같이 빌드 에러가 난다. ../Core/Inc/ClassTest.h:11:1: error: unknown type name '.. 2020. 4. 11.
[STM32] printf 함수의 수행시간 측정 지난번에 SysTick을 사용하여 usDelay를 구현해보았다. 관련 내용은 아래 포스트를 참고하면 된다. https://swiftcam.tistory.com/145?category=783715 [STM32] sysTick 을 이용한 usDelay 함수 만들기 STM32CubeIDE에서는 기본적으로 1ms단위로 입력이 가능한 msDelay를 제공한다. 그러나 가끔 시간을 측정하거나 1ms보다 작은 delay를 사용하고자 한다면 msDelay를 사용할 수 없다. us 단위의 delay를 만드는 방법.. swiftcam.tistory.com 오늘은 UART로 printf를 출력할 경우 수행시간을 측정하고 usDelay를 이용하여 수행시간을 단축한 결과와 비교하고자 한다. 1. printf의 함수의 수행시간 .. 2020. 3. 18.
[STM32] sysTick 을 이용한 usDelay 함수 만들기 STM32CubeIDE에서는 기본적으로 1ms단위로 입력이 가능한 msDelay를 제공한다. 그러나 가끔 시간을 측정하거나 1ms보다 작은 delay를 사용하고자 한다면 msDelay를 사용할 수 없다. us 단위의 delay를 만드는 방법은 타이머 소스를 사용하거나 system clock을 사용하거나 여러가지 방법이 있지만 오늘은 sysTick을 사용하여 usDelay함수를 구현해보고자 한다. 1. SysTick sysTick는 Cortex-M 코어에만 지원하는 24bit 타이머이다. Tick 타이머에 적합하도록 설계되어 있는 간단한 타이머이다. sysTick은 시스템 클럭를 그대로 사용하거나 8분주한 클럭을 소스로 사용할 수 있다. 타이머의 동작은 간단하다. Reload Register를 이용하여 타.. 2020. 3. 9.
[STM32] UART로 실수형(float) 출력하기 지난 포스트에서 printf 함수를 호출하여 UART 데이터를 터미널로 출력해보았다. https://swiftcam.tistory.com/143 [STM32] printf를 시리얼로 출력하기 printf 함수는 펌웨어 개발단계에서 디버깅을 위해 가장 많이 사용하는 방법중 하나이다. 보통 visual studio나 PC 기반의 IDE는 printf를 통하여 툴에서 화면으로 출력되도록 지정되어 있다. 그러나 STM32와 같은.. swiftcam.tistory.com 한가지 더 확인해보기 위해 아래 코드를 실행해본다. 아래 코드에는 문자열과 int형 변수, float형 변수값을 printf로 출력하도록 하였다. 터미널로 출력된 결과를 보면 문자열과 int형 변수들은 출력이 되었지만, float형 변수는 출력되.. 2020. 3. 6.
[STM32] printf를 시리얼로 출력하기 printf 함수는 펌웨어 개발단계에서 디버깅을 위해 가장 많이 사용하는 방법중 하나이다. 보통 visual studio나 PC 기반의 IDE는 printf를 통하여 툴에서 화면으로 출력되도록 지정되어 있다. 그러나 STM32와 같은 임베디드 보드의 경우에는 printf를 출력할 대상을 지정해주어야 한다. STM는 UART를 기본적으로 가지고 있기 때문에 UART를 이용하여 printf를 출력할 수 있다. 오늘은 UART를 이용하여 printf를 터미널 화면으로 출력하는 방법을 소개한다. UART를 이용하여 printf를 출력하기 위해서는 먼저 UART 사용할 수 있도록 드라이버가 설정되어 있어야 한다. STM32CubeIDE에서 UART를 설정하는 방법에 대해서는 아래를 참고하면 된다. https://.. 2020. 3. 6.
[STM32 자작드론] 자이로 센서 인터페이스 사용할 센서는 Revolt FC에 내장된 IC20602 축 자이로, 3축 가속도가 있는 센서이다. ICM-20602는 자이로는 32kHz, 가속도는 4kHz 주기로 출력된다. 16bit ADC를 사용하며 노이즈 레벨이은 MPU 센서 대비 현저히 낮다. 상세한 사양은 아래 데이터시트를 참고하면 된다. https://www.invensense.com/wp-content/uploads/2016/10/DS-000176-ICM-20602-v1.0.pdf 센서설정값은 다음과 같다. - 각속도 스케일: +/-2000dps - 가속도 스케일: +/-16 - LPF: 20Hz STM32F405는 ICM-20602 IMU센서와 SPI로 연결된다. ICM-20602는 SPI 통신과 I2C 통신 두가지 방식을 지원하는데 SP.. 2019. 10. 13.
[STM32 - 자작드론개발] 프로젝트 생성 및 디버그 LED 점멸 드론을 개발하기 위해서는 STM32 CPU와 자이로, 가속도 센서등 여러가지 센서가 필요하다. 직접 준비하려면 손이 많이 가게 되어 있지만 요즘 나오는 Racing 드론에 사용하는 FC(Flight Controller)에는 이러한 센서와 인터페이스가 제공되는 제품들이 많이 있다. 이러한 제품을 이용하는 것이 CPU보드에 센서를 붙혀 하드웨어를 개발하는 것보다 훨신 편하다. 그 중 최근에는 STM32F405를 이용하여 최대 32kHz 단위로 rate를 업데이트 해주는 하드웨어가 제품이 많이 있는데 본인은 Raceflight Revolt FC 를 사용할 예정이다. ​Revolt 하드웨어에 대한 정보는 아래와 같다. https://flightone.com/revoltv3 FlightOne Revolt Flig.. 2019. 9. 29.