반응형

전체 글 803

STM32 인터럽트와 EXTI 설정

STM32 인터럽트와 EXTI 설정오늘은 STM32F429ZI 개발 환경에서 인터럽트를 이해하고, NVIC 설정 및 외부 인터럽트(EXTI)를 이용해 버튼을 제어하는 방법을 소개하려고 합니다. 본 포스팅은 STM32CubeIDE를 기반으로 진행하며, STM32CubeMX 없이 직접 IO 설정 및 EXTI 설정을 하는 방법을 다룹니다. 이를 통해 STM32F429ZI의 인터럽트 구조를 제대로 이해할 수 있도록 하겠습니다.인터럽트의 기본 개념인터럽트(Interrupt)는 특정 사건(Event)이 발생했을 때 CPU의 주 실행 흐름을 잠시 멈추고 사건을 처리하기 위한 특별한 함수(Interrupt Service Routine, ISR)를 실행하는 기법입니다. MCU에서 인터럽트는 실시간 처리를 가능하게 하며,..

STM32 2024.11.28

Android 앱 성능 최적화 전략 - 메모리 관리부터 ANR 문제 해결까지

Android 앱 성능 최적화 전략 - 메모리 관리부터 ANR 문제 해결까지안드로이드 애플리케이션을 개발할 때, 성능은 사용자 경험에 큰 영향을 미칩니다. 느린 화면 전환, 자주 발생하는 ANR (Application Not Responding) 문제 등은 사용자로 하여금 앱을 떠나게 만들 수 있습니다. 이번 포스팅에서는 안드로이드 애플리케이션의 성능을 최적화하는 다양한 전략들을 소개하고, 각 전략의 실제 예제 코드와 함께 설명하겠습니다. 목표는 앱의 메모리 관리, 스레드 처리, ANR 문제 해결 등 성능 관련 문제들을 어떻게 최적화할 수 있는지 이해하는 것입니다.1. 메모리 관리 최적화1.1 가비지 컬렉션(GC) 최소화안드로이드에서는 자바와 코틀린의 가비지 컬렉터(Garbage Collector, GC..

Android/Application 2024.11.28

Knapsack 비대칭키 암호화 알고리즘

Knapsack 비대칭키 암호화 알고리즘안녕하세요! '소프트웨어 공장' 블로그를 방문해주셔서 감사합니다. 오늘은 비대칭키 암호화 알고리즘 중 하나인 Knapsack 암호화 알고리즘에 대해 알아보도록 하겠습니다. Knapsack 암호화 알고리즘은 초기에 비대칭키 암호화 방식으로 주목받았지만 이후 다양한 연구를 통해 보안 문제점이 발견된 알고리즘입니다. 이번 포스트에서는 Knapsack 암호화 알고리즘의 기본 개념을 설명하고, Java와 Linux C 언어로 구현한 예제를 소개하겠습니다.Knapsack 암호화 알고리즘이란?Knapsack 암호화 알고리즘은 1978년 Ralph Merkle와 Martin Hellman이 제안한 초기 공개키 암호 시스템 중 하나입니다. 이 알고리즘은 "배낭 문제(Knapsack..

STM32 아날로그 신호 출력 DAC 설정하기

STM32 아날로그 신호 출력 DAC 설정하기이번 포스팅에서는 STM32 마이크로컨트롤러의 DAC(Digital to Analog Converter)를 사용하여 아날로그 신호를 출력하는 방법을 소개하겠습니다. STM32CubeIDE를 활용하여 DAC의 IO 설정을 진행하고, 이를 통해 PWM이 아닌 아날로그 형태의 신호를 출력하는 과정에 대해 설명해 드리겠습니다. DAC의 기본 개념부터 코드 예제까지 함께 다루어 보며, STM32 개발의 이해도를 높여보세요.1. DAC(Digital to Analog Converter)의 개념DAC는 디지털 신호를 아날로그 신호로 변환해 주는 장치입니다. STM32 마이크로컨트롤러에는 하나 이상의 DAC 채널이 내장되어 있으며, 이를 통해 PWM(Pulse Width M..

STM32 2024.11.27

Android - Camera Gallery 기능 활용

Android - Camera Gallery 기능 활용안녕하세요, '소프트웨어 공장'입니다! 오늘은 안드로이드의 미디어 기능을 활용하는 방법을 간단한 예제를 통해 알아보겠습니다. 안드로이드에서는 사진이나 비디오 촬영, 갤러리에서 이미지 선택 등 다양한 미디어 기능을 손쉽게 구현할 수 있습니다. 이번 포스팅에서는 간단한 예제를 통해 카메라와 갤러리를 활용하여 이미지를 앱에 표시하는 방법을 소개하겠습니다.목표이 포스팅을 통해 여러분은 다음과 같은 내용을 배울 수 있습니다:카메라를 이용하여 사진 촬영하기갤러리에서 이미지를 선택하기선택된 이미지를 ImageView에 표시하기구현 내용우리는 다음 기능들을 구현해볼 것입니다:사용자가 버튼을 클릭하면 카메라를 열어 사진을 찍을 수 있도록 합니다.또 다른 버튼을 클릭하..

Android/Application 2024.11.27

Paillier 비대칭키 암호화 알고리즘

Paillier 비대칭키 암호화 알고리즘안녕하세요, 소프트웨어 공장의 독자 여러분! 오늘은 비대칭키 암호화 알고리즘 중 하나인 Paillier 암호화 알고리즘에 대해 이야기해보려고 합니다. 이 알고리즘은 특유의 동형성(homomorphism) 덕분에 암호화된 상태에서 연산이 가능하다는 점에서 주목받고 있는데요, 본 포스팅에서는 Paillier 암호화의 원리와 함께 Java 및 Linux C 언어로 구현하는 방법까지 살펴보겠습니다.Paillier 암호화 알고리즘 소개Paillier 암호화는 1999년 Pascal Paillier에 의해 개발된 공개 키 암호화 알고리즘입니다. 이 알고리즘은 특이하게도 동형암호화(Homomorphic Encryption)를 지원하는데, 이는 암호화된 데이터에 대한 산술 연산이..

STM32 ADC 설정 및 사용하기

STM32 ADC 설정 및 사용하기이번 포스팅에서는 STM32 마이크로컨트롤러의 ADC(Analog-to-Digital Converter)를 설정하고 사용하는 방법에 대해 설명하겠습니다. STM32CubeIDE를 통해 IO 핀을 설정하고, 아날로그 신호를 디지털 값으로 변환하는 기본적인 개념을 이해하며, 코드 예제를 통해 실습해보도록 하겠습니다. ADC 설정 과정은 STM32CubeMX를 활용하여 간단하게 할 수 있으며, 이를 통해 개발자가 필요한 설정을 GUI로 직관적으로 진행할 수 있습니다.ADC란 무엇인가?ADC는 아날로그 신호를 디지털 값으로 변환하는 장치입니다. 아날로그 신호는 연속적인 값을 가지는 반면, 디지털 신호는 불연속적인 비트를 나타내므로, 우리가 MCU와 같은 디지털 장치를 통해 아날..

STM32 2024.11.26

Android - 비디오 및 오디오 재생

Android - 비디오 및 오디오 재생안드로이드 애플리케이션을 개발하면서 사용자 경험을 극대화하는 중요한 요소 중 하나는 멀티미디어의 효과적인 활용입니다. 이번 포스팅에서는 Android 앱에서 비디오와 오디오를 재생하는 방법을 배워보겠습니다. 이 글에서는 Android의 MediaPlayer와 VideoView를 사용하여 비디오와 오디오를 재생하는 기본적인 방법을 설명하고, 이를 실제로 구현할 수 있는 예제를 제공하겠습니다.1. 오디오 재생하기Android에서 오디오를 재생하기 위해 가장 많이 사용하는 클래스는 MediaPlayer입니다. 이 클래스를 이용하면 로컬 파일이나 웹상의 오디오를 손쉽게 재생할 수 있습니다. 먼저 MediaPlayer를 사용하여 간단한 오디오 재생 예제를 구현해보겠습니다.1..

Android/Application 2024.11.26

DSA(Digital Signature Algorithm) 비대칭키 암호화 알고리즘

DSA(Digital Signature Algorithm) 비대칭키 암호화 알고리즘비대칭키 암호화 알고리즘 중 하나인 DSA (Digital Signature Algorithm)은 디지털 서명을 생성하고 검증하는 목적으로 설계된 암호화 알고리즘입니다. 비대칭키 암호화는 두 개의 키, 즉 공개 키와 개인 키를 사용하여 데이터를 암호화하고 서명하는 방식입니다. DSA는 특히 디지털 서명을 위한 알고리즘으로, 미국 국가안보국(NSA)에 의해 개발되었으며, 디지털 서명을 통해 데이터의 무결성과 인증을 보장합니다.이번 포스팅에서는 DSA가 무엇인지 설명하고, JAVA 언어와 C 언어를 사용하여 간단한 예제 구현을 살펴보겠습니다.1. DSA의 개념과 특징DSA는 주로 다음과 같은 특성을 가지고 있습니다:서명 생성 ..

STM32 SPI 설정 및 활용 가이드

STM32 SPI 설정 및 활용 가이드STM32 MCU는 다양한 인터페이스를 통해 외부 장치와 통신할 수 있습니다. 그중 SPI(Serial Peripheral Interface)는 빠르고 간편한 통신을 제공하여 센서, 메모리 장치, 디스플레이 등 다양한 디바이스와의 데이터 교환에 널리 사용됩니다. 이번 글에서는 STM32CubeIDE를 이용하여 SPI 설정 방법을 상세히 설명하고, SPI를 통해 외부 디바이스와 통신하는 예제를 다뤄보겠습니다.SPI의 개념SPI는 직렬 통신 프로토콜로, 마스터와 슬레이브 간의 동기화된 데이터 전송을 위해 사용됩니다. SPI는 클럭 신호를 사용하여 데이터를 전송하는데, 주요한 핀은 다음과 같습니다:MOSI (Master Out Slave In): 마스터에서 슬레이브로 데이..

STM32 2024.11.25
반응형