STM32 (21) 썸네일형 리스트형 Hard Fault(하드 폴트) - 0으로 나누기 stm32 MCU에서 0으로 나누기를 시도하면 하드 폴트(Hard fault) 발생할 수 있음.하드 폴트는 프로그램이 비정상적인 동작을 할 때 발생하는 예외. 0으로 나누는 경우 하드 폴트가 발생하는 이유는 프로세서가 이러한 연산을 처리할 수 없기 때문.0으로 나누기와 같은 잘못된 연산을 감지하고 이를 처리할 방법이 없을 때 하드 폴트 발생. 0으로 나누기를 방지하는 방법 : 나눈셈을 수행하기 전에 분모가 0인지 확인. #include int divide(int numerator, int denominator) { if (denominator == 0) { // 분모가 0일 때 처리할 코드를 작성합니다. // 예를 들어, 에러 메시지를 출력하거나, 에러 코드를 반환할 수 있.. [STM32] multiple definition error [펌] https://blog.naver.com/kim1417/222748055449 STM32H7 LwIP 코드 생성 버그(?) #STM32H7 #CubeMX #CubeIDE #LwIP #Bug #errno #Multiple #Definition STM32H7에 대... blog.naver.com 출처 : 네이버 블로그 [카드한장] [STM32F1] Timer Interrupt 1. CubeMX 설정 - NVIC Setting : 인터럽트 Enabled 체크 - Code generation 2. 코드 작성 1) main.c /* USER CODE BEGIN 2 */ HAL_TIM_Base_Start_IT(&htim3); // Timer 시작 /* USER CODE END 2 */ 2) stm32f1xx_it.c // 인터럽트 발생 시, IRQ 핸들러 함수 호출 -> HAL_TIM_IRQHandler 함수 호출 void TIM3_IRQHandler(void) { /* USER CODE BEGIN TIM3_IRQn 0 */ /* USER CODE END TIM3_IRQn 0 */ HAL_TIM_IRQHandler(&htim3); /* USER CODE BEGIN TIM3_IRQn .. 메모리 늘리는 방법 : an internal error occurred 에러 : "Updating index" 해결법 1. 증상 2021. 09. 16) STM32CubeIDE를 실행하고 Index 업데이트 할 때 에러 발생 2. 원인 메모리 부족 3. 조치사항 메모리 확장. C:\ST\STM32CubeIDE_1.6.1\STM32CubeIDE/stm32cubeide.ini 파일 우클릭 -> 편집 가장 아래 쪽을 보면 , Xms, Xmx 항목 Xms - 최소 힙 메모리 크기 Xmx - 최대 힙메모리 크기 실행될때 Xms만큼은 기본으로 메모리를 생성하고 최대 Xmx까지 확장생성 할 수 있게 하라는 의미. 요즘 나오는 컴퓨터는 기본으로 -Xms512m -Xmx1024m 정도로 설정하자. 출처: https://aljjabaegi.tistory.com/213 [알짜배기 프로그래머] [KEIL][TIP!] keil IDE 한글 깨짐 해결법 * 목표 : 한글 입력 시 ??? 와 같이 깨지는 현상 해결하기 Edit - Configuration [STM32F746] USART6 송신 test * 목표 : USART6을 이용하여 "hello world" 송신 USART6은 stm32f746-disco 보드에서 사용자가 핀을 사용할 수 있는 유일한 방법이다. datasheet를 참고하면 TX / D1 (PC6) = USART6_TX RX / D0 (PC7) = USART6_RX 1. 보드 설정 - USART6 활성화 - FREERTOS task 생성 touchGFX와 함께 사용하기 때문에 uart 통신을 하는 task하나를 따로 하나 더 만들어서 사용하였다. 2. 코드 작성 printf를 사용하기 위해서는 추가해야할 2가지 코드가 있다. 1) #include 2) /* USER CODE BEGIN 0 */ #ifdef __GNUC__ /* With GCC/RAISONANCE, small prin.. [STM32F746] RS-232 1. 정의 - 직렬 통신 방식 중 하나 - 1:1통신(시리얼 통신) = 한 번에 한 비트씩 전송 2. 핀 구성 - 총 9개의 핀으로 구성되어 있음 - RX(Pin2), TX(Pin3), GND(Pin5)만으로 사용하는 경우 많음 - 나머지 핀은 시리얼 통신할 때 하드웨어 컨트롤이 필요한 경우에 사용 3. 주의해야 할 점 - Baud Rate에 따른 케이블의 최대 길이 - 속도가 올라갈 수록 케이블의 길이는 짧아져야 함 [touchGFX] Multi-Language * 목표 : 버튼을 통해 한/영 언어 선택 1. MVP 패턴 구조 2. 인터렉션 생성 3. Add a new language 4. 코드 작성 1) Screen1Presenter.hpp public: void toggleLanguage(); 2) Screen1Presenter.cpp #include #include void Screevoid Screen1Presenter::toggleLanguage() { LanguageId currentLanguage = Texts::getLanguage(); if(currentLanguage == (LANGUAGES::NUMBER_OF_LANGUAGES - 1)) { view.setLanguage(0); } else { view.setLanguage(currentLan.. 이전 1 2 3 다음