728x90

STM32 24

STM32 - LCD 문자 출력 (I2C)

https://insoobaik.tistory.com/626 STM32 - I2C 이론보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 입력하세요.insoobaik.tistory.comI2C 이론에 이어 I2C 통신을 이용하여 LCD에 문자를 출력해볼 것이다.LCD에 문자를 출력하기 위해 아두이노 LCM1602 IIC 쉴드를 사용할 것이다. 해당 쉴드에는 PCF8574가 내장되어 있다.PCF8574는 I2C 통신 프로토콜을 이용하여 데이터를 주고 받는다. Slave 주소를 정하는 7bit는 앞에 0100은 고정이며 A0, A1, A2에 의해 Slave가 정해진다.슬레이브 주소를 정하는 A0, A1, A2의 경우 Pull Up 저항이 달려있기 때문에 A0, A1, A2에는 1의 값이 전달된다.코드를 생성..

STM32 - DAC (DAC를 통한 LED 밝기 조절)

DAC (Digital to Analog Converter) 디지털 신호를 아날로그로 전압 신호로 변환하는 출력 장치다. STM32F429의 DAC 특징2개(2채널)의 12비트 DAC 컨버터 - DAC1 : 출력 핀이 DAC_OUT1 (PA4)- DAC2 : 출력 핀이 DAC_OUT2 (PA5) - 다중 DAC 채널 독립 또는 동시 변환 가능하다.- 각 채널마다 DMA 가능하다.- 변환 시작을 위해 외부 트리거 신호를 사용 가능하다.- Vref+의 입력 전압도 사용 가능하다. 단일 채널 사용 시단일 DAC 채널의 경우 입력 데이터의 포맷은 3가지 방법이 가능하다.1. 8bit 오른쪽 정렬 [7:0] 비트에 데이터를 로드2. 12bit 왼쪽 정렬 [15:4] 비트에 데이터를 로드3. 12bit 오른쪽 정렬..

STM32 - ADC값에 따른 LED 점멸 (Nucleo-144용 I/O 보드)

Nucleo-144용 I/O 보드는 위와 같이 생겼고, 각 부품에 대한 포트 및 핀 번호는 위의 표와 같다. 이전 글에서 ADC를 통해 아날로그 신호를 디지털로 변환시켜 출력하는 작업을 해보았다. I/O 보드에 있는 가변 저항과 LED를 통해 ADC 결과값에 따라 LED를 점멸할 것이다. ADC : 0~4095까지 표현이 가능하다. LED = 8개0~500 : led 1 500~1000 : led 2 1000~1500 : led 3 1500~2000 : led 4 2000~2500 : led 5 2500~3000 : led 6 3000~3500 : led 7 3500~ 최대 : led 8 ADC 값이 위와 같을 때 해당 LED를 점멸하도록 할 것이다. I/O 보드의 가변저항은 PC0에 해당한다.해당 AD..

STM32 - ADC 이론 (DMA, ADC 함수)

ADC (Analog to Digital Converter) 아날로그 신호를 디지털로 변환해주는 장치다. ADC 특징1. 3개의 ADC 컨트롤러가 있다.2. 각각 최대 12비트의 해상도를 가지고 있다. (0~4095의 디지털 값을 얻을 수 있다.)3. 최대 24개의 채널로 동시에 아날로그 신호를 24개까지 처리할 수 있다.4. 처리 속도는 7.2MSPS(Mega Sampling Per Second)의 속도로 샘플링 가능하다.Vref+, Vref- : 아날로그 신호의 음과 양의 최대 범위인 기준 전압을 입력 받는다.ADCx_IN0~15 : 총 16개의 입력을 받을 수 있다.Temp sensor : 내부에 온도센서가 있어 ADC를 통해 디지털 온도값을 받을 수 있다.ADCCLK : ADC를 동작시키는 클럭에..

STM32 - UART 구현 - (3) (Interrupt, 코드 상세 구현)

https://insoobaik.tistory.com/615  STM32 - UART 구현 - (2) (Echo, Polling 코드 상세 분석)https://insoobaik.tistory.com/614 STM32 - UART 구현 - (1)보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 입력하세요.insoobaik.tistory.comUART 통신은 기본적으로 8bit 데이터를 전송하기 때문에 char, uint8_tinsoobaik.tistory.comecho, polling 모드에 이어 interrupt 모드에 대해 알아볼 것이다.Interrupt 모드 Polling 모드의 경우 CPU가 주기적으로 상태를 확인하고 데이터를 처리해야 하기 때문에 사용량이 높은 반면 Interrupt 모드의 경우..

STM32 - UART 구현 - (2) (Echo, Polling 코드 상세 분석)

https://insoobaik.tistory.com/614 STM32 - UART 구현 - (1)보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 입력하세요.insoobaik.tistory.comUART 통신은 기본적으로 8bit 데이터를 전송하기 때문에 char, uint8_t와 같이 8bit 이하 데이터 전송만 가능하다.__io_putchar __io_putchar는 printf문을 출력하기 위한 가장 기본적인 함수다.putchar는 printf에 입력된 문자열의 문자 하나하나마다 함수가 실행된다. Transmit() 함수를 이용하여 전달받은 ch값을 UART 통신을 통해 출력한다. echo 모드 Uart의 echo 모드는 송신한 데이터를 수신 측에서 다시 그대로 송신 측으로 되돌려 보내는 모드를..

STM32 - UART 구현 - (1)

https://insoobaik.tistory.com/613 STM32 - UART 이론 - (2)보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 입력하세요.insoobaik.tistory.com이론 내용을 바탕으로 UART를 구현해보겠다. Nucleo board에 MCU파트와 ST-Link 파트가 있는데 MCU의 PD8, 9는 ST-Link와 송수신을 담당하는 Pin인 것을 확인할 수 있다.기본적으로 USART3을 사용하며 비동기식 방식을 사용한다. UART 통신에 필요한 Buad Rate, Word Length 등 값을 설정할 수 있다. UART를 Polling mode로 사용할지 Interrupt로 사용할지에 따라 체크를 해주면 된다.DataSheet를 보게되면 USART3은 APB1 Bus를 ..

STM32 - UART 이론 - (2)

https://insoobaik.tistory.com/612 STM32 - UART 이론 - (1)보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 입력하세요.insoobaik.tistory.comUART에 대한 기본적인 이론에 이어서 STM32를 통해 UART에 대해 조금 더 자세히 알아보겠다.UART (Universal Asynchronous Receiver/Transmitter) 범용 비동기식 직렬 통신 컨트롤러PC와 타겟 보드가 통신할 때 가장 기본으로 사용하는 통신 포트다. UART는 CPU와 PC등에 기본 장착되어 있어 호환성이 좋지만 1대 1 통신등의 제한이 있어 확장성이 떨어진다. UART는 RS-232형식을 따라 총 9개의 신호선으로 구성되어 있다.그 중 2 - Received Data..

STM32 - EXTI (External Interrupt) 구현 - (1)

https://insoobaik.tistory.com/609 STM32 - EXTI (External Interrupt 외부 인터럽트) 이론보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 입력하세요.insoobaik.tistory.com이전에 학습한 이론을 통해 EXTI를 직접 구현해보도록 하겠다.브레드보드를 이용하여 위와 같이 스위치를 이용한 회로 3개를 통해 EXTI를 구성할 것이다.1. SW1을 누르면 인터럽트가 발생하여 LED 1 -> 2 -> 3이 차례로 하나씩 점멸하도록 구현2. SW2를 누르면 인터럽트가 발생하여 LED 3 -> 2 -> 1이 차례로 하나씩 점멸하도록 구현3. SW3을 누르면  인터럽트가 발생하여 LED 1, 2, 3이 한번에 점멸하도록 구현 3, 5, 10번 Pin 전부..

STM32 - EXTI (External Interrupt 외부 인터럽트) 이론

Interrupt(인터럽트) 인터럽트란 다른 동작을 수행하기 위해 주는 신호를 뜻한다. 일반적으로 Interrupt를 사용하지 않고 신호를 전달하면 (Polling) 실행되고 있던 동작을 완전히 끝낸 후에 새로 받은 신호에 따라 동작을 수행한다.Interrupt를 사용하면 Interrupt가 발생하자마자 수행하고 있는 동작을 잠시 중지하고 Interrupt로 발생된 동작을 수행하고 원래 수행하던 동작을 수행한다.EXTI(External Interrupt) EXTI는 말 그대로 외부에서 발생하는 Interrupt를 의미한다. 스위치를 눌러 수행하는 동작의 경우 EXTI라고 할 수 있다.STM32의 경우 위와 같은 알고리즘을 따른다. 1. Input Line을 통해 인터럽트가 발생하면 Rising 혹은 Fa..

728x90